Skip to content

Commit fc5bf25

Browse files
author
jasper-schneider
committed
Get Task File scenario tests
1 parent b489d93 commit fc5bf25

File tree

10 files changed

+5233
-128
lines changed

10 files changed

+5233
-128
lines changed

src/ResourceManager/Batch/Commands.Batch.Test/Commands.Batch.Test.csproj

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,24 @@
224224
<None Include="SessionRecords\Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests\TestUpdatesExistingBatchAccount.json">
225225
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
226226
</None>
227+
<None Include="SessionRecords\Microsoft.Azure.Commands.Batch.Test.ScenarioTests.FileTests\TestGetTaskFileByName.json">
228+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
229+
</None>
230+
<None Include="SessionRecords\Microsoft.Azure.Commands.Batch.Test.ScenarioTests.FileTests\TestListAllTaskFiles.json">
231+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
232+
</None>
233+
<None Include="SessionRecords\Microsoft.Azure.Commands.Batch.Test.ScenarioTests.FileTests\TestListTaskFilePipeline.json">
234+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
235+
</None>
236+
<None Include="SessionRecords\Microsoft.Azure.Commands.Batch.Test.ScenarioTests.FileTests\TestListTaskFilesByFilter.json">
237+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
238+
</None>
239+
<None Include="SessionRecords\Microsoft.Azure.Commands.Batch.Test.ScenarioTests.FileTests\TestListTaskFilesRecursive.json">
240+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
241+
</None>
242+
<None Include="SessionRecords\Microsoft.Azure.Commands.Batch.Test.ScenarioTests.FileTests\TestListTaskFilesWithMaxCount.json">
243+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
244+
</None>
227245
<None Include="SessionRecords\Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests\TestDeleteJob.json">
228246
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
229247
</None>

src/ResourceManager/Batch/Commands.Batch.Test/ScenarioTests/FileTests.cs

Lines changed: 82 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
using System;
1616
using Microsoft.Azure.Batch;
17+
using Microsoft.Azure.Batch.Protocol.Entities;
1718
using Microsoft.Azure.Commands.Batch.Models;
1819
using Microsoft.Azure.Test;
1920
using Microsoft.WindowsAzure.Commands.ScenarioTest;
@@ -26,167 +27,176 @@ namespace Microsoft.Azure.Commands.Batch.Test.ScenarioTests
2627
{
2728
public class FileTests
2829
{
30+
// NOTE: To save time on VM allocation when recording, these tests assume the following:
31+
// - A Batch account named 'filetests' exists under the subscription being used for recording.
32+
// - A pool called 'testPool' exists under this account and has at least 1 VM allocated to it.
33+
34+
private const string accountName = "filetests";
35+
2936
[Fact]
3037
[Trait(Category.AcceptanceType, Category.CheckIn)]
31-
public void TestGetTaskByName()
38+
public void TestGetTaskFileByName()
3239
{
3340
BatchController controller = BatchController.NewInstance;
34-
string resourceGroupName = "test-get-task";
35-
string accountName = "testgettaskbyname";
36-
string location = "eastus";
37-
string workItemName = "testName";
41+
string workItemName = "testGetTaskFileWI";
3842
string jobName = null;
3943
string taskName = "testTask";
44+
string taskFileName = "stdout.txt";
4045
BatchAccountContext context = null;
4146
controller.RunPsTestWorkflow(
42-
() => { return new string[] { string.Format("Test-GetTaskByName '{0}' '{1}' '{2}' '{3}'", accountName, workItemName, jobName, taskName) }; },
47+
() => { return new string[] { string.Format("Test-GetTaskFileByName '{0}' '{1}' '{2}' '{3}' '{4}'", accountName, workItemName, jobName, taskName, taskFileName) }; },
4348
() =>
4449
{
45-
context = ScenarioTestHelpers.CreateTestAccountAndResourceGroup(controller, resourceGroupName, accountName, location);
46-
ScenarioTestHelpers.CreateTestWorkItem(context, workItemName);
50+
context = ScenarioTestHelpers.GetBatchAccountContextWithKeys(controller, accountName);
51+
ScenarioTestHelpers.CreateTestWorkItem(controller, context, workItemName);
4752
jobName = ScenarioTestHelpers.WaitForRecentJob(controller, context, workItemName);
48-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName);
53+
ScenarioTestHelpers.CreateTestTask(controller, context, workItemName, jobName, taskName);
54+
ScenarioTestHelpers.WaitForTaskCompletion(controller, context, workItemName, jobName, taskName);
4955
},
5056
() =>
5157
{
52-
ScenarioTestHelpers.DeleteWorkItem(context, workItemName);
53-
ScenarioTestHelpers.CleanupTestAccount(controller, resourceGroupName, accountName);
58+
ScenarioTestHelpers.DeleteWorkItem(controller, context, workItemName);
5459
},
5560
TestUtilities.GetCallingClass(),
5661
TestUtilities.GetCurrentMethodName());
5762
}
5863

5964
[Fact]
6065
[Trait(Category.AcceptanceType, Category.CheckIn)]
61-
public void TestListTasksByFilter()
66+
public void TestListTaskFilesByFilter()
6267
{
6368
BatchController controller = BatchController.NewInstance;
64-
string resourceGroupName = "test-list-task-filter";
65-
string accountName = "testlisttaskfilter";
66-
string location = "eastus";
67-
string workItemName = "testWorkItem";
69+
string workItemName = "testListTaskFileFilterWI";
6870
string jobName = null;
69-
string taskName1 = "testTask1";
70-
string taskName2 = "testTask2";
71-
string taskName3 = "thirdTestTask";
72-
string taskPrefix = "testTask";
71+
string taskName = "testTask";
72+
string taskFilePrefix = "std";
7373
int matches = 2;
7474
BatchAccountContext context = null;
7575
controller.RunPsTestWorkflow(
76-
() => { return new string[] { string.Format("Test-ListTasksByFilter '{0}' '{1}' '{2}' '{3}' '{4}'", accountName, workItemName, jobName, taskPrefix, matches) }; },
76+
() => { return new string[] { string.Format("Test-ListTaskFilesByFilter '{0}' '{1}' '{2}' '{3}' '{4}' '{5}'", accountName, workItemName, jobName, taskName, taskFilePrefix, matches) }; },
7777
() =>
7878
{
79-
context = ScenarioTestHelpers.CreateTestAccountAndResourceGroup(controller, resourceGroupName, accountName, location);
80-
ScenarioTestHelpers.CreateTestWorkItem(context, workItemName);
79+
context = ScenarioTestHelpers.GetBatchAccountContextWithKeys(controller, accountName);
80+
ScenarioTestHelpers.CreateTestWorkItem(controller, context, workItemName);
8181
jobName = ScenarioTestHelpers.WaitForRecentJob(controller, context, workItemName);
82-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName1);
83-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName2);
84-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName3);
82+
ScenarioTestHelpers.CreateTestTask(controller, context, workItemName, jobName, taskName);
83+
ScenarioTestHelpers.WaitForTaskCompletion(controller, context, workItemName, jobName, taskName);
8584
},
8685
() =>
8786
{
88-
ScenarioTestHelpers.DeleteWorkItem(context, workItemName);
89-
ScenarioTestHelpers.CleanupTestAccount(controller, resourceGroupName, accountName);
87+
ScenarioTestHelpers.DeleteWorkItem(controller, context, workItemName);
9088
},
9189
TestUtilities.GetCallingClass(),
9290
TestUtilities.GetCurrentMethodName());
9391
}
9492

9593
[Fact]
9694
[Trait(Category.AcceptanceType, Category.CheckIn)]
97-
public void TestListTasksWithMaxCount()
95+
public void TestListTaskFilesWithMaxCount()
9896
{
9997
BatchController controller = BatchController.NewInstance;
100-
string resourceGroupName = "test-list-task-maxcount";
101-
string accountName = "testlisttaskmaxcount";
102-
string location = "eastus";
103-
string workItemName = "testWorkItem";
98+
string workItemName = "testTaskFileMaxWI";
10499
string jobName = null;
105-
string taskName1 = "testTask1";
106-
string taskName2 = "testTask2";
107-
string taskName3 = "testTask3";
100+
string taskName = "testTask";
108101
int maxCount = 1;
109102
BatchAccountContext context = null;
110103
controller.RunPsTestWorkflow(
111-
() => { return new string[] { string.Format("Test-ListTasksWithMaxCount '{0}' '{1}' '{2}' '{3}'", accountName, workItemName, jobName, maxCount) }; },
104+
() => { return new string[] { string.Format("Test-ListTaskFilesWithMaxCount '{0}' '{1}' '{2}' '{3}' '{4}'", accountName, workItemName, jobName, taskName, maxCount) }; },
105+
() =>
106+
{
107+
context = ScenarioTestHelpers.GetBatchAccountContextWithKeys(controller, accountName);
108+
ScenarioTestHelpers.CreateTestWorkItem(controller, context, workItemName);
109+
jobName = ScenarioTestHelpers.WaitForRecentJob(controller, context, workItemName);
110+
ScenarioTestHelpers.CreateTestTask(controller, context, workItemName, jobName, taskName);
111+
ScenarioTestHelpers.WaitForTaskCompletion(controller, context, workItemName, jobName, taskName);
112+
},
113+
() =>
114+
{
115+
ScenarioTestHelpers.DeleteWorkItem(controller, context, workItemName);
116+
},
117+
TestUtilities.GetCallingClass(),
118+
TestUtilities.GetCurrentMethodName());
119+
}
120+
121+
[Fact]
122+
[Trait(Category.AcceptanceType, Category.CheckIn)]
123+
public void TestListAllTaskFiles()
124+
{
125+
BatchController controller = BatchController.NewInstance;
126+
string workItemName = "testListTaskFileWI";
127+
string jobName = null;
128+
string taskName = "testTask";
129+
int count = 4; // ProcessEnv, stdout, stderr, wd
130+
BatchAccountContext context = null;
131+
controller.RunPsTestWorkflow(
132+
() => { return new string[] { string.Format("Test-ListAllTaskFiles '{0}' '{1}' '{2}' '{3}' '{4}'", accountName, workItemName, jobName, taskName, count) }; },
112133
() =>
113134
{
114-
context = ScenarioTestHelpers.CreateTestAccountAndResourceGroup(controller, resourceGroupName, accountName, location);
115-
ScenarioTestHelpers.CreateTestWorkItem(context, workItemName);
135+
context = ScenarioTestHelpers.GetBatchAccountContextWithKeys(controller, accountName);
136+
ScenarioTestHelpers.CreateTestWorkItem(controller, context, workItemName);
116137
jobName = ScenarioTestHelpers.WaitForRecentJob(controller, context, workItemName);
117-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName1);
118-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName2);
119-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName3);
138+
ScenarioTestHelpers.CreateTestTask(controller, context, workItemName, jobName, taskName);
139+
ScenarioTestHelpers.WaitForTaskCompletion(controller, context, workItemName, jobName, taskName);
120140
},
121141
() =>
122142
{
123-
ScenarioTestHelpers.DeleteWorkItem(context, workItemName);
124-
ScenarioTestHelpers.CleanupTestAccount(controller, resourceGroupName, accountName);
143+
ScenarioTestHelpers.DeleteWorkItem(controller, context, workItemName);
125144
},
126145
TestUtilities.GetCallingClass(),
127146
TestUtilities.GetCurrentMethodName());
128147
}
129148

130149
[Fact]
131150
[Trait(Category.AcceptanceType, Category.CheckIn)]
132-
public void TestListAllTasks()
151+
public void TestListTaskFilesRecursive()
133152
{
134153
BatchController controller = BatchController.NewInstance;
135-
string resourceGroupName = "test-list-task";
136-
string accountName = "testlisttask";
137-
string location = "eastus";
138-
string workItemName = "testWorkItem";
154+
string workItemName = "testListTFRecursiveWI";
139155
string jobName = null;
140-
string taskName1 = "testTask1";
141-
string taskName2 = "testTask2";
142-
string taskName3 = "testTask3";
143-
int count = 3;
156+
string taskName = "testTask";
157+
string newFile = "testFile.txt";
144158
BatchAccountContext context = null;
145159
controller.RunPsTestWorkflow(
146-
() => { return new string[] { string.Format("Test-ListAllTasks '{0}' '{1}' '{2}' '{3}'", accountName, workItemName, jobName, count) }; },
160+
() => { return new string[] { string.Format("Test-ListTaskFilesRecursive '{0}' '{1}' '{2}' '{3}' '{4}'", accountName, workItemName, jobName, taskName, newFile) }; },
147161
() =>
148162
{
149-
context = ScenarioTestHelpers.CreateTestAccountAndResourceGroup(controller, resourceGroupName, accountName, location);
150-
ScenarioTestHelpers.CreateTestWorkItem(context, workItemName);
163+
context = ScenarioTestHelpers.GetBatchAccountContextWithKeys(controller, accountName);
164+
ScenarioTestHelpers.CreateTestWorkItem(controller, context, workItemName);
151165
jobName = ScenarioTestHelpers.WaitForRecentJob(controller, context, workItemName);
152-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName1);
153-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName2);
154-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName3);
166+
ScenarioTestHelpers.CreateTestTask(controller, context, workItemName, jobName, taskName, string.Format("cmd /c echo \"test file\" > {0}", newFile));
167+
ScenarioTestHelpers.WaitForTaskCompletion(controller, context, workItemName, jobName, taskName);
155168
},
156169
() =>
157170
{
158-
ScenarioTestHelpers.DeleteWorkItem(context, workItemName);
159-
ScenarioTestHelpers.CleanupTestAccount(controller, resourceGroupName, accountName);
171+
ScenarioTestHelpers.DeleteWorkItem(controller, context, workItemName);
160172
},
161173
TestUtilities.GetCallingClass(),
162174
TestUtilities.GetCurrentMethodName());
163175
}
164176

165177
[Fact]
166178
[Trait(Category.AcceptanceType, Category.CheckIn)]
167-
public void TestListTaskPipeline()
179+
public void TestListTaskFilePipeline()
168180
{
169181
BatchController controller = BatchController.NewInstance;
170-
string resourceGroupName = "test-list-task-pipe";
171-
string accountName = "testlisttaskpipe";
172-
string location = "eastus";
173-
string workItemName = "testWorkItem";
182+
string workItemName = "testListTaskPipeWI";
174183
string jobName = null;
175184
string taskName = "testTask";
185+
int count = 4; // ProcessEnv, stdout, stderr, wd
176186
BatchAccountContext context = null;
177187
controller.RunPsTestWorkflow(
178-
() => { return new string[] { string.Format("Test-ListTaskPipeline '{0}' '{1}' '{2}' '{3}'", accountName, workItemName, jobName, taskName) }; },
188+
() => { return new string[] { string.Format("Test-ListTaskFilePipeline '{0}' '{1}' '{2}' '{3}' '{4}'", accountName, workItemName, jobName, taskName, count) }; },
179189
() =>
180190
{
181-
context = ScenarioTestHelpers.CreateTestAccountAndResourceGroup(controller, resourceGroupName, accountName, location);
182-
ScenarioTestHelpers.CreateTestWorkItem(context, workItemName);
191+
context = ScenarioTestHelpers.GetBatchAccountContextWithKeys(controller, accountName);
192+
ScenarioTestHelpers.CreateTestWorkItem(controller, context, workItemName);
183193
jobName = ScenarioTestHelpers.WaitForRecentJob(controller, context, workItemName);
184-
ScenarioTestHelpers.CreateTestTask(context, workItemName, jobName, taskName);
194+
ScenarioTestHelpers.CreateTestTask(controller, context, workItemName, jobName, taskName);
195+
ScenarioTestHelpers.WaitForTaskCompletion(controller, context, workItemName, jobName, taskName);
185196
},
186197
() =>
187198
{
188-
ScenarioTestHelpers.DeleteWorkItem(context, workItemName);
189-
ScenarioTestHelpers.CleanupTestAccount(controller, resourceGroupName, accountName);
199+
ScenarioTestHelpers.DeleteWorkItem(controller, context, workItemName);
190200
},
191201
TestUtilities.GetCallingClass(),
192202
TestUtilities.GetCurrentMethodName());

0 commit comments

Comments
 (0)