Skip to content

Commit 3ab2805

Browse files
committed
Add ProcessSchedule Add/Get/Remove
Add support for process schedule Add/Get/Remove Handle HttpOperationException and extract/show error message/code from server, if possible. UI-13105
1 parent 522fe61 commit 3ab2805

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+573
-97
lines changed

UiPath.PowerShell.Tests/Cmdlets/AssetTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void AssetAddRemovePositional()
2323
cmdlet.AddCommand(UiPathStrings.AddUiPathAsset)
2424
.AddArgument(assetName)
2525
.AddParameter(UiPathStrings.TextValue, assetValue);
26-
var assets = cmdlet.Invoke<Asset>();
26+
var assets = Invoke<Asset>(cmdlet);
2727

2828
Validators.ValidateAssetResponse(assets, null, assetName, AssetDtoValueType.Text, assetValue);
2929

@@ -35,7 +35,7 @@ public void AssetAddRemovePositional()
3535
{
3636
cmdlet.AddCommand(UiPathStrings.RemoveUiPathAsset)
3737
.AddArgument(asset);
38-
cmdlet.Invoke();
38+
Invoke(cmdlet);
3939
}
4040
}
4141
}
@@ -53,7 +53,7 @@ public void AssetAddGetRemoveById()
5353
cmdlet.AddCommand(UiPathStrings.AddUiPathAsset)
5454
.AddParameter(UiPathStrings.Name, assetName)
5555
.AddParameter(UiPathStrings.TextValue, assetValue);
56-
var assets = cmdlet.Invoke<Asset>();
56+
var assets = Invoke<Asset>(cmdlet);
5757

5858
Validators.ValidateAssetResponse(assets, null, assetName, AssetDtoValueType.Text, assetValue);
5959

@@ -65,7 +65,7 @@ public void AssetAddGetRemoveById()
6565
{
6666
cmdlet.AddCommand(UiPathStrings.GetUiPathAsset)
6767
.AddParameter(UiPathStrings.Name, assetName);
68-
var assets = cmdlet.Invoke<Asset>();
68+
var assets = Invoke<Asset>(cmdlet);
6969
Validators.ValidateAssetResponse(assets, assetId, assetName, AssetDtoValueType.Text, assetValue);
7070
}
7171

@@ -74,15 +74,15 @@ public void AssetAddGetRemoveById()
7474
{
7575
cmdlet.AddCommand(UiPathStrings.RemoveUiPathAsset)
7676
.AddParameter(UiPathStrings.Id, assetId);
77-
cmdlet.Invoke();
77+
Invoke(cmdlet);
7878
}
7979

8080
// Validate is removed
8181
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
8282
{
8383
cmdlet.AddCommand(UiPathStrings.GetUiPathAsset)
8484
.AddParameter(UiPathStrings.Name, assetName);
85-
var assets = cmdlet.Invoke<Asset>();
85+
var assets = Invoke<Asset>(cmdlet);
8686
Validators.ValidatEmptyResponse(assets);
8787
}
8888
}

UiPath.PowerShell.Tests/Cmdlets/EnvironmentTests.cs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void EnvironmentAddGetRemove()
2424
.AddParameter(UiPathStrings.Name, name)
2525
.AddParameter(UiPathStrings.Description, description)
2626
.AddParameter(UiPathStrings.Type, EnvironmentDtoType.Dev);
27-
var environments = cmdlet.Invoke<Environment>();
27+
var environments = Invoke<Environment>(cmdlet);
2828

2929
Validators.ValidateEnvironmentResponse(environments, null, name, description, EnvironmentDtoType.Dev);
3030

@@ -35,7 +35,7 @@ public void EnvironmentAddGetRemove()
3535
{
3636
cmdlet.AddCommand(UiPathStrings.GetUiPathEnvironment)
3737
.AddParameter(UiPathStrings.Id, environmentId);
38-
var environments = cmdlet.Invoke<Environment>();
38+
var environments = Invoke<Environment>(cmdlet);
3939

4040
Validators.ValidateEnvironmentResponse(environments, environmentId, name, description, EnvironmentDtoType.Dev);
4141
}
@@ -44,14 +44,14 @@ public void EnvironmentAddGetRemove()
4444
{
4545
cmdlet.AddCommand(UiPathStrings.RemoveUiPathEnvironment)
4646
.AddParameter(UiPathStrings.Id, environmentId);
47-
cmdlet.Invoke();
47+
Invoke(cmdlet);
4848
}
4949

5050
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
5151
{
5252
cmdlet.AddCommand(UiPathStrings.GetUiPathEnvironment)
5353
.AddParameter(UiPathStrings.Name, name);
54-
var environments = cmdlet.Invoke<Environment>();
54+
var environments = Invoke<Environment>(cmdlet);
5555
Validators.ValidatEmptyResponse(environments);
5656
}
5757
}
@@ -72,7 +72,7 @@ public void EnvironmentAddType()
7272
.AddParameter(UiPathStrings.Name, name)
7373
.AddParameter(UiPathStrings.Description, description)
7474
.AddParameter(UiPathStrings.Type, envType);
75-
var environments = cmdlet.Invoke<Environment>();
75+
var environments = Invoke<Environment>(cmdlet);
7676

7777
Validators.ValidateEnvironmentResponse(environments, null, name, description, (EnvironmentDtoType)envType);
7878

@@ -97,7 +97,17 @@ public void EnvironmentNegativeBadType()
9797
.AddParameter(UiPathStrings.Name, name)
9898
.AddParameter(UiPathStrings.Description, description)
9999
.AddParameter(UiPathStrings.Type, "Invalid");
100-
Assert.ThrowsException<ValidationMetadataException>(() => cmdlet.Invoke<Environment>());
100+
// Not clear if it should be ParameterBindingValidationException or ValidationMetadataException
101+
// And ParameterBindingValidationException does not resolve...
102+
try
103+
{
104+
Invoke<Environment>(cmdlet);
105+
Assert.Fail("The Invoke was supposed to throw!");
106+
}
107+
catch(RuntimeException re)
108+
{
109+
Assert.AreEqual("Cannot validate argument on parameter 'Type'. The argument \"Invalid\" does not belong to the set \"Dev,Test,Prod\" specified by the ValidateEnum attribute. Supply an argument that is in the set and then try the command again", re.Message);
110+
}
101111
}
102112
}
103113
}

UiPath.PowerShell.Tests/Cmdlets/QueueDefinitionsTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void QueueDefinitionAddGetRemove()
2222
.AddParameter(UiPathStrings.Name, name)
2323
.AddParameter(UiPathStrings.Description, description)
2424
.AddParameter(UiPathStrings.AcceptAutomaticallyRetry);
25-
var queues = cmdlet.Invoke<QueueDefinition>();
25+
var queues = Invoke<QueueDefinition>(cmdlet);
2626

2727
Validators.ValidateQueueDefinitionResponse(queues, null, name, description, true, false, 0);
2828

@@ -33,7 +33,7 @@ public void QueueDefinitionAddGetRemove()
3333
{
3434
cmdlet.AddCommand(UiPathStrings.GetUiPathQueueDefinition)
3535
.AddParameter(UiPathStrings.Id, queue.Id);
36-
var queues = cmdlet.Invoke<QueueDefinition>();
36+
var queues = Invoke<QueueDefinition>(cmdlet);
3737

3838
Validators.ValidateQueueDefinitionResponse(queues, queue.Id, name, description, true, false, 0);
3939
}
@@ -42,7 +42,7 @@ public void QueueDefinitionAddGetRemove()
4242
{
4343
cmdlet.AddCommand(UiPathStrings.RemoveUiPathQueueDefinition)
4444
.AddParameter(UiPathStrings.Id, queue.Id);
45-
cmdlet.Invoke();
45+
Invoke(cmdlet);
4646
}
4747
}
4848
}
@@ -62,7 +62,7 @@ public void QueueDefinitionAddEditGetRemove()
6262
.AddParameter(UiPathStrings.Name, name)
6363
.AddParameter(UiPathStrings.Description, description)
6464
.AddParameter(UiPathStrings.AcceptAutomaticallyRetry);
65-
var queues = cmdlet.Invoke<QueueDefinition>();
65+
var queues = Invoke<QueueDefinition>(cmdlet);
6666

6767
Validators.ValidateQueueDefinitionResponse(queues, null, name, description, true, false, 0);
6868

@@ -76,14 +76,14 @@ public void QueueDefinitionAddEditGetRemove()
7676
cmdlet.AddCommand(UiPathStrings.EditUiPathQueueDefinition)
7777
.AddArgument(queue)
7878
.AddParameter(UiPathStrings.Description, description);
79-
cmdlet.Invoke<QueueDefinition>();
79+
Invoke<QueueDefinition>(cmdlet);
8080
}
8181

8282
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
8383
{
8484
cmdlet.AddCommand(UiPathStrings.GetUiPathQueueDefinition)
8585
.AddParameter(UiPathStrings.Id, queue.Id);
86-
var queues = cmdlet.Invoke<QueueDefinition>();
86+
var queues = Invoke<QueueDefinition>(cmdlet);
8787

8888
Validators.ValidateQueueDefinitionResponse(queues, queue.Id, name, description, true, false, 0);
8989
}
@@ -92,7 +92,7 @@ public void QueueDefinitionAddEditGetRemove()
9292
{
9393
cmdlet.AddCommand(UiPathStrings.RemoveUiPathQueueDefinition)
9494
.AddParameter(UiPathStrings.QueueDefinition, queue);
95-
cmdlet.Invoke();
95+
Invoke(cmdlet);
9696
}
9797
}
9898
}

UiPath.PowerShell.Tests/Cmdlets/RobotTests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void RobotAddGetRemove()
3030
.AddParameter(UiPathStrings.LicenseKey, licenseKey)
3131
.AddParameter(UiPathStrings.Username, username)
3232
.AddParameter(UiPathStrings.Type, RobotDtoType.NonProduction);
33-
var robots = cmdlet.Invoke<Robot>();
33+
var robots = Invoke<Robot>(cmdlet);
3434

3535
Validators.ValidateRobotResponse(robots, null, name, description, machine, licenseKey, RobotDtoType.NonProduction);
3636

@@ -41,7 +41,7 @@ public void RobotAddGetRemove()
4141
{
4242
cmdlet.AddCommand(UiPathStrings.GetUiPathRobot)
4343
.AddParameter(UiPathStrings.Id, robotId);
44-
var robots = cmdlet.Invoke<Robot>();
44+
var robots = Invoke<Robot>(cmdlet);
4545

4646
Validators.ValidateRobotResponse(robots, robotId, name, description, machine, licenseKey, RobotDtoType.NonProduction);
4747
}
@@ -50,14 +50,14 @@ public void RobotAddGetRemove()
5050
{
5151
cmdlet.AddCommand(UiPathStrings.RemoveUiPathRobot)
5252
.AddParameter(UiPathStrings.Id, robotId);
53-
cmdlet.Invoke<Robot>();
53+
Invoke<Robot>(cmdlet);
5454
}
5555

5656
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
5757
{
5858
cmdlet.AddCommand(UiPathStrings.GetUiPathRobot)
5959
.AddParameter(UiPathStrings.Name, name);
60-
var robots = cmdlet.Invoke<Robot>();
60+
var robots = Invoke<Robot>(cmdlet);
6161

6262
Validators.ValidatEmptyResponse(robots);
6363
}
@@ -86,7 +86,7 @@ public void RobotAddEditGetRemovePositional()
8686
.AddParameter(UiPathStrings.LicenseKey, licenseKey)
8787
.AddParameter(UiPathStrings.Username, username)
8888
.AddParameter(UiPathStrings.Type, RobotDtoType.NonProduction);
89-
var robots = cmdlet.Invoke<Robot>();
89+
var robots = Invoke<Robot>(cmdlet);
9090

9191
Validators.ValidateRobotResponse(robots, null, name, description, machine, licenseKey, RobotDtoType.NonProduction);
9292

@@ -99,7 +99,7 @@ public void RobotAddEditGetRemovePositional()
9999
.AddParameter(UiPathStrings.Id, robotId)
100100
.AddParameter(UiPathStrings.Password, TestRandom.RandomPassword())
101101
.AddParameter(UiPathStrings.Type, RobotDtoType.Unattended);
102-
cmdlet.Invoke<Robot>();
102+
Invoke<Robot>(cmdlet);
103103
}
104104

105105
Robot robot = null;
@@ -108,7 +108,7 @@ public void RobotAddEditGetRemovePositional()
108108
{
109109
cmdlet.AddCommand(UiPathStrings.GetUiPathRobot)
110110
.AddParameter(UiPathStrings.Id, robotId);
111-
var robots = cmdlet.Invoke<Robot>();
111+
var robots = Invoke<Robot>(cmdlet);
112112

113113
Validators.ValidateRobotResponse(robots, robotId, name, description, machine, licenseKey, RobotDtoType.Unattended);
114114
robot = robots[0];
@@ -119,14 +119,14 @@ public void RobotAddEditGetRemovePositional()
119119
{
120120
cmdlet.AddCommand(UiPathStrings.RemoveUiPathRobot)
121121
.AddArgument(robot);
122-
cmdlet.Invoke<Robot>();
122+
Invoke<Robot>(cmdlet);
123123
}
124124

125125
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
126126
{
127127
cmdlet.AddCommand(UiPathStrings.GetUiPathRobot)
128128
.AddParameter(UiPathStrings.Name, name);
129-
var robots = cmdlet.Invoke<Robot>();
129+
var robots = Invoke<Robot>(cmdlet);
130130

131131
Validators.ValidatEmptyResponse(robots);
132132
}

UiPath.PowerShell.Tests/Cmdlets/RoleTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public void RoleAddGetRemove()
3232
//.AddParameter(UiPathStrings.DisplayName, displaName) -- bugbug: the displayname is ignored by Orchestrator
3333
.AddParameter(UiPathStrings.IsEditable)
3434
.AddParameter(UiPathStrings.Permissions, permissions);
35-
var roles = cmdlet.Invoke<Role>();
35+
var roles = Invoke<Role>(cmdlet);
3636
Validators.ValidateRoleResult(roles, null, name, name, true, false, null);
3737
role = roles[0];
3838
}
@@ -41,22 +41,22 @@ public void RoleAddGetRemove()
4141
{
4242
cmdlet.AddCommand(UiPathStrings.GetUiPathRole)
4343
.AddParameter(UiPathStrings.Name, role.Name);
44-
var roles = cmdlet.Invoke<Role>();
44+
var roles = Invoke<Role>(cmdlet);
4545
Validators.ValidateRoleResult(roles, role.Id, name, name, true, false, permissions);
4646
}
4747

4848
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
4949
{
5050
cmdlet.AddCommand(UiPathStrings.RemoveUiPathRole)
5151
.AddParameter(UiPathStrings.Id, role.Id);
52-
cmdlet.Invoke();
52+
Invoke(cmdlet);
5353
}
5454

5555
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
5656
{
5757
cmdlet.AddCommand(UiPathStrings.GetUiPathRole)
5858
.AddParameter(UiPathStrings.Name, role.Name);
59-
var roles = cmdlet.Invoke<Role>();
59+
var roles = Invoke<Role>(cmdlet);
6060
Validators.ValidatEmptyResponse(roles);
6161
}
6262
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using System;
3+
using UiPath.PowerShell.Models;
4+
using UiPath.PowerShell.Tests.Util;
5+
6+
namespace UiPath.PowerShell.Tests.Cmdlets
7+
{
8+
[TestClass]
9+
public class ScheduleTests : TestClassBase
10+
{
11+
public const string TestCron = "0 30 11 1/1 * ? *";
12+
13+
[TestMethod]
14+
public void ScheduleAddRemove()
15+
{
16+
using (var runspace = PowershellFactory.CreateAuthenticatedSession(TestContext))
17+
{
18+
ProcessSchedule schedule = null;
19+
Process process = null;
20+
var name = TestRandom.RandomString();
21+
var description = TestRandom.RandomString();
22+
23+
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
24+
{
25+
cmdlet.AddCommand(UiPathStrings.GetUiPathProcess)
26+
.AddParameter(UiPathStrings.Id, 2);
27+
var processes = Invoke<Process>(cmdlet);
28+
process = processes[0];
29+
}
30+
31+
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
32+
{
33+
cmdlet.AddCommand(UiPathStrings.AddUiPathProcessSchedule)
34+
.AddParameter(UiPathStrings.Name, name)
35+
.AddParameter(UiPathStrings.Process, process)
36+
.AddParameter(UiPathStrings.StartProcessCron, TestCron)
37+
.AddParameter(UiPathStrings.TimeZoneId, TimeZone.CurrentTimeZone.StandardName)
38+
.AddParameter(UiPathStrings.RobotCount, 1);
39+
var schedules = Invoke<ProcessSchedule>(cmdlet);
40+
41+
schedule = schedules[0];
42+
}
43+
44+
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
45+
{
46+
cmdlet.AddCommand(UiPathStrings.RemoveUiPathProcessSchedule)
47+
.AddParameter(UiPathStrings.Id, schedule.Id);
48+
Invoke(cmdlet);
49+
}
50+
}
51+
}
52+
}
53+
}

UiPath.PowerShell.Tests/Cmdlets/UserTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public void UserAddGetRemove()
3232
.AddParameter(UiPathStrings.EmailAddress, email)
3333
.AddParameter(UiPathStrings.Type, userType)
3434
.AddParameter(UiPathStrings.RolesList, new List<string>() { UiPathStrings.Administrator });
35-
var users = cmdlet.Invoke<User>();
35+
var users = Invoke<User>(cmdlet);
3636
Validators.ValidateUserResponse(users, null, userName, password, name, surname, email, userType);
3737
user = users[0];
3838
}
@@ -41,22 +41,22 @@ public void UserAddGetRemove()
4141
{
4242
cmdlet.AddCommand(UiPathStrings.GetUiPathUser)
4343
.AddParameter(UiPathStrings.Id, user.Id);
44-
var users = cmdlet.Invoke<User>();
44+
var users = Invoke<User>(cmdlet);
4545
Validators.ValidateUserResponse(users, user.Id, userName, password, name, surname, email, userType);
4646
}
4747

4848
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
4949
{
5050
cmdlet.AddCommand(UiPathStrings.RemoveUiPathUser)
5151
.AddParameter(UiPathStrings.Id, user.Id);
52-
cmdlet.Invoke();
52+
Invoke(cmdlet);
5353
}
5454

5555
using (var cmdlet = PowershellFactory.CreateCmdlet(runspace))
5656
{
5757
cmdlet.AddCommand(UiPathStrings.GetUiPathUser)
5858
.AddParameter(UiPathStrings.Username, userName);
59-
var users = cmdlet.Invoke<User>();
59+
var users = Invoke<User>(cmdlet);
6060
Validators.ValidatEmptyResponse(users);
6161
}
6262
}

UiPath.PowerShell.Tests/UiPath.PowerShell.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
<Compile Include="Cmdlets\QueueDefinitionsTests.cs" />
6767
<Compile Include="Cmdlets\RobotTests.cs" />
6868
<Compile Include="Cmdlets\RoleTests.cs" />
69+
<Compile Include="Cmdlets\ScheduleTests.cs" />
6970
<Compile Include="Cmdlets\UserTests.cs" />
7071
<Compile Include="Properties\AssemblyInfo.cs" />
7172
<Compile Include="..\Properties\GlobalAssemblyInfo.cs">

0 commit comments

Comments
 (0)