Skip to content

Commit 9a1929d

Browse files
committed
Merge pull request #2291 from brnleehng/feature/swagger-app-and-td
Fix for application tests
2 parents 7c13b22 + 2d10d22 commit 9a1929d

19 files changed

+766
-1421
lines changed

src/ResourceManager/AzureBatch/Commands.Batch.Test/ScenarioTests/BatchApplicationTests.cs

Lines changed: 82 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@
1414

1515
using System;
1616
using Microsoft.Azure.Test;
17+
using Microsoft.WindowsAzure.Commands.Utilities.Common;
1718
using Xunit;
1819

1920
namespace Microsoft.Azure.Commands.Batch.Test.ScenarioTests
2021
{
2122
public class BatchApplicationTests : WindowsAzure.Commands.Test.Utilities.Common.RMTestBase
2223
{
23-
private const string filePath = "Resources\\TestApplicationPackage.zip";
24+
private readonly string filePath = "Resources\\TestApplicationPackage.zip".AsAbsoluteLocation();
25+
private const string version = "foo";
2426

2527
[Fact]
2628
public void TestUploadApplication()
@@ -31,45 +33,117 @@ public void TestUploadApplication()
3133
[Fact]
3234
public void TestUploadApplicationPackage()
3335
{
34-
BatchController.NewInstance.RunPsTest(string.Format("Test-UploadApplicationPackage '{0}'", filePath));
36+
string id = "newApplicationPackage";
37+
38+
BatchController controller = BatchController.NewInstance;
39+
BatchAccountContext context = null;
40+
controller.RunPsTestWorkflow(
41+
() =>
42+
{
43+
return new string[]
44+
{
45+
string.Format(string.Format("Test-UploadApplicationPackage '{0}' '{1}' '{2}'", id, version, filePath))
46+
};
47+
},
48+
() =>
49+
{
50+
context = new ScenarioTestContext();
51+
ScenarioTestHelpers.CreateApplicationPackage(controller, context, id, version, filePath);
52+
},
53+
() =>
54+
{
55+
ScenarioTestHelpers.DeleteApplicationPackage(controller, context, id, version);
56+
ScenarioTestHelpers.DeleteApplication(controller, context, id);
57+
},
58+
TestUtilities.GetCallingClass(),
59+
TestUtilities.GetCurrentMethodName());
3560
}
3661

3762
[Fact]
3863
public void TestUpdateApplicationPackage()
3964
{
40-
BatchController.NewInstance.RunPsTest(string.Format("Test-UpdateApplicationPackage '{0}'", filePath));
65+
string id = "updateApplicationPackage";
66+
67+
BatchController controller = BatchController.NewInstance;
68+
BatchAccountContext context = null;
69+
controller.RunPsTestWorkflow(
70+
() =>
71+
{
72+
return new string[]
73+
{
74+
string.Format(string.Format("Test-UpdateApplicationPackage '{0}' '{1}' '{2}'", id, version, filePath))
75+
};
76+
},
77+
() =>
78+
{
79+
context = new ScenarioTestContext();
80+
ScenarioTestHelpers.CreateApplicationPackage(controller, context, id, version, filePath);
81+
},
82+
() =>
83+
{
84+
ScenarioTestHelpers.DeleteApplicationPackage(controller, context, id, version);
85+
ScenarioTestHelpers.DeleteApplication(controller, context, id);
86+
},
87+
TestUtilities.GetCallingClass(),
88+
TestUtilities.GetCurrentMethodName());
4189
}
4290

4391
[Fact]
4492
public void TestCreatePoolWithApplicationPackage()
4593
{
46-
BatchController controller = BatchController.NewInstance;
94+
string id = "createPoolWithApplicationPackage";
4795
string poolId = "testCreatePoolWithAppPackages";
48-
controller.RunPsTest(string.Format("Test-CreatePoolWithApplicationPackage '{0}' '{1}' ", poolId, filePath));
96+
97+
BatchController controller = BatchController.NewInstance;
98+
BatchAccountContext context = null;
99+
controller.RunPsTestWorkflow(
100+
() =>
101+
{
102+
return new string[]
103+
{
104+
string.Format(string.Format("Test-CreatePoolWithApplicationPackage '{0}' '{1}' '{2}' '{3}'", id, version,
105+
poolId, filePath))
106+
};
107+
},
108+
() =>
109+
{
110+
context = new ScenarioTestContext();
111+
ScenarioTestHelpers.CreateApplicationPackage(controller, context, id, version, filePath);
112+
},
113+
() =>
114+
{
115+
},
116+
TestUtilities.GetCallingClass(),
117+
TestUtilities.GetCurrentMethodName());
49118
}
50119

51120
[Fact]
52121
public void TestUpdatePoolWithApplicationPackage()
53122
{
54-
BatchController controller = BatchController.NewInstance;
123+
string id = "updatePoolWithApplicationPackage";
55124
string poolId = "testUpdatePoolWithAppPackages";
125+
126+
BatchController controller = BatchController.NewInstance;
56127
BatchAccountContext context = null;
57128
controller.RunPsTestWorkflow(
58129
() =>
59130
{
60131
return new string[]
61132
{
62-
string.Format("Test-UpdatePoolWithApplicationPackage '{0}' '{1}'",
133+
string.Format("Test-UpdatePoolWithApplicationPackage '{0}' '{1}' '{2}' '{3}'", id, version,
63134
poolId, filePath)
64135
};
65136
},
66137
() =>
67138
{
68139
context = new ScenarioTestContext();
69-
ScenarioTestHelpers.CreateTestPool(controller, context, poolId, 0);
140+
ScenarioTestHelpers.CreateApplicationPackage(controller, context, id, version, filePath);
141+
ScenarioTestHelpers.CreateTestPool(controller, context, poolId, 1);
70142
},
71143
() =>
72144
{
145+
ScenarioTestHelpers.DeleteApplicationPackage(controller, context, id, version);
146+
ScenarioTestHelpers.DeleteApplication(controller, context, id);
73147
ScenarioTestHelpers.DeletePool(controller, context, poolId);
74148
},
75149
TestUtilities.GetCallingClass(),

src/ResourceManager/AzureBatch/Commands.Batch.Test/ScenarioTests/BatchApplicationTests.ps1

Lines changed: 32 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -43,26 +43,15 @@ Tests uploading an application package.
4343
#>
4444
function Test-UploadApplicationPackage
4545
{
46-
param([string]$filePath)
46+
param([string] $applicationId, [string] $applicationVersion, [string]$filePath)
4747

4848
# Setup
49-
$applicationId = "test"
50-
$applicationVersion = "foo"
5149
$context = New-Object Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ScenarioTestContext
5250

53-
try
54-
{
55-
$addAppPack = New-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion -FilePath $filePath -format "zip"
56-
$getapp = Get-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion
51+
$addAppPack = New-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion -FilePath $filePath -format "zip" -Activate
5752

58-
Assert-AreEqual $getapp.Id $addAppPack.Id
59-
Assert-AreEqual $getapp.Version $addAppPack.Version
60-
}
61-
finally
62-
{
63-
Remove-AzureRmBatchApplicationPackage -AccountName $context.AccountName -ApplicationId $applicationId -ResourceGroupName $context.ResourceGroupName -ApplicationVersion $applicationVersion
64-
Remove-AzureRmBatchApplication -AccountName $context.AccountName -ApplicationId $applicationId -ResourceGroupName $context.ResourceGroupName
65-
}
53+
Assert-AreEqual $applicationId $addAppPack.Id
54+
Assert-AreEqual $applicationVersion $addAppPack.Version
6655
}
6756

6857
<#
@@ -71,31 +60,22 @@ Tests can update an application settings
7160
#>
7261
function Test-UpdateApplicationPackage
7362
{
74-
param([string]$filePath)
63+
param([string] $applicationId, [string] $applicationVersion, [string]$filePath)
7564

7665
# Setup
77-
$applicationId = "test"
78-
$applicationVersion = "foo"
7966
$newDisplayName = "application-display-name"
8067
$context = New-Object Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ScenarioTestContext
8168

82-
try
83-
{
84-
$addAppPack = New-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion -FilePath $filePath -format "zip"
85-
$beforeUpdateApp = Get-AzureRmBatchApplication -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId
69+
$beforeUpdateApp = Get-AzureRmBatchApplication -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId
8670

87-
Set-AzureRmBatchApplication -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -displayName $newDisplayName -defaultVersion $applicationVersion
88-
$afterUpdateApp = Get-AzureRmBatchApplication -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId
71+
$addAppPack = New-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion -FilePath $filePath -format "zip" -Activate
72+
Set-AzureRmBatchApplication -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -displayName $newDisplayName -defaultVersion $applicationVersion
8973

90-
Assert-AreEqual $afterUpdateApp.DefaultVersion "foo"
91-
Assert-AreNotEqual $afterUpdateApp.DefaultVersion $beforeUpdateApp.DefaultVersion
92-
Assert-AreEqual $afterUpdateApp.AllowUpdates $true
93-
}
94-
finally
95-
{
96-
Remove-AzureRmBatchApplicationPackage -AccountName $context.AccountName -ApplicationId $applicationId -ResourceGroupName $context.ResourceGroupName -ApplicationVersion $applicationVersion
97-
Remove-AzureRmBatchApplication -AccountName $context.AccountName -ApplicationId $applicationId -ResourceGroupName $context.ResourceGroupName
98-
}
74+
$afterUpdateApp = Get-AzureRmBatchApplication -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId
75+
76+
Assert-AreEqual $afterUpdateApp.DefaultVersion $applicationVersion
77+
Assert-AreNotEqual $afterUpdateApp.DefaultVersion $beforeUpdateApp.DefaultVersion
78+
Assert-AreEqual $afterUpdateApp.AllowUpdates $true
9979
}
10080

10181
<#
@@ -104,21 +84,17 @@ Tests create pool with an application package.
10484
#>
10585
function Test-CreatePoolWithApplicationPackage
10686
{
107-
param([string] $poolId, [string]$filePath)
87+
param([string] $applicationId, [string] $applicationVersion, [string] $poolId, [string]$filePath)
10888

10989
# Setup
110-
$applicationId = "test"
111-
$applicationVersion = "foo"
11290
$context = New-Object Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ScenarioTestContext
11391

11492
try
11593
{
116-
$addAppPack = New-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion -FilePath $filePath -format "zip"
94+
$addAppPack = New-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion -FilePath $filePath -format "zip" -Activate
11795

118-
$getapp = Get-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion
119-
120-
Assert-AreEqual $getapp.Id $addAppPack.Id
121-
Assert-AreEqual $getapp.Version $addAppPack.Version
96+
Assert-AreEqual $applicationId $addAppPack.Id
97+
Assert-AreEqual $applicationVersion $addAppPack.Version
12298

12399
$apr1 = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
124100
$apr1.ApplicationId = $applicationId
@@ -146,38 +122,27 @@ Tests update pool with an application package.
146122
#>
147123
function Test-UpdatePoolWithApplicationPackage
148124
{
149-
param([string] $poolId, [string]$filePath)
125+
param([string] $applicationId, [string] $applicationVersion, [string] $poolId, [string]$filePath)
150126

151-
$applicationId = "test"
152-
$applicationVersion = "foo"
153127
$context = New-Object Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ScenarioTestContext
154128

155-
try
156-
{
157-
$addAppPack = New-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion -FilePath $filePath -format "zip"
158-
$getapp = Get-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion
129+
$addAppPack = New-AzureRmBatchApplicationPackage -ResourceGroupName $context.ResourceGroupName -AccountName $context.AccountName -ApplicationId $applicationId -ApplicationVersion $applicationVersion -FilePath $filePath -format "zip" -Activate
159130

160-
Assert-AreEqual $getapp.Id $addAppPack.Id
161-
Assert-AreEqual $getapp.Version $addAppPack.Version
131+
Assert-AreEqual $applicationId $addAppPack.Id
132+
Assert-AreEqual $applicationVersion $addAppPack.Version
162133

163-
$getPool = Get-AzureBatchPool -Id $poolId -BatchContext $context
134+
$getPool = Get-AzureBatchPool -Id $poolId -BatchContext $context
164135

165-
# update pool with application package references
166-
$apr1 = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
167-
$apr1.ApplicationId = $applicationId
168-
$apr1.Version = $applicationVersion
169-
$apr = [Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference[]]$apr1
136+
# update pool with application package references
137+
$apr1 = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
138+
$apr1.ApplicationId = $applicationId
139+
$apr1.Version = $applicationVersion
140+
$apr = [Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference[]]$apr1
170141

171-
$getPool.ApplicationPackageReferences = $apr
172-
$getPool | Set-AzureBatchPool -BatchContext $context
142+
$getPool.ApplicationPackageReferences = $apr
143+
$getPool | Set-AzureBatchPool -BatchContext $context
173144

174-
$getPoolWithAPR = get-AzureBatchPool -Id $poolId -BatchContext $context
175-
# pool has application package references
176-
Assert-AreNotEqual $getPoolWithAPR.ApplicationPackageReferences $null
177-
}
178-
finally
179-
{
180-
Remove-AzureRmBatchApplicationPackage -AccountName $context.AccountName -ApplicationId $applicationId -ResourceGroupName $context.ResourceGroupName -ApplicationVersion $applicationVersion
181-
Remove-AzureRmBatchApplication -AccountName $context.AccountName -ApplicationId $applicationId -ResourceGroupName $context.ResourceGroupName
182-
}
145+
$getPoolWithAPR = get-AzureBatchPool -Id $poolId -BatchContext $context
146+
# pool has application package references
147+
Assert-AreNotEqual $getPoolWithAPR.ApplicationPackageReferences $null
183148
}

src/ResourceManager/AzureBatch/Commands.Batch.Test/ScenarioTests/ScenarioTestHelpers.cs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
using Microsoft.WindowsAzure.Storage.Blob;
2727
using System;
2828
using System.Collections.Generic;
29+
using System.IO;
2930
using System.Linq;
3031
using System.Security.Cryptography.X509Certificates;
3132
using System.Threading;
@@ -638,6 +639,48 @@ private static string UploadBlobAndGetUrl(string containerName, string blobName,
638639
return blobUrl;
639640
}
640641

642+
/// <summary>
643+
/// Uploads an application package to Storage
644+
/// </summary>
645+
public static AddApplicationPackageResult CreateApplicationPackage(BatchController controller, BatchAccountContext context, string applicationId, string version, string filePath)
646+
{
647+
AddApplicationPackageResult applicationPackage = null;
648+
649+
if (HttpMockServer.Mode == HttpRecorderMode.Record)
650+
{
651+
applicationPackage = controller.BatchManagementClient.Application.AddApplicationPackage(
652+
context.ResourceGroupName,
653+
context.AccountName,
654+
applicationId,
655+
version);
656+
657+
CloudBlockBlob blob = new CloudBlockBlob(new Uri(applicationPackage.StorageUrl));
658+
blob.UploadFromFile(filePath, FileMode.Open);
659+
}
660+
661+
return applicationPackage;
662+
}
663+
664+
/// <summary>
665+
/// Deletes an application used in a Scenario test.
666+
/// </summary>
667+
public static void DeleteApplication(BatchController controller, BatchAccountContext context, string applicationId)
668+
{
669+
BatchClient client = new BatchClient(controller.BatchManagementClient, controller.ResourceManagementClient);
670+
671+
client.DeleteApplication(context.ResourceGroupName, context.AccountName, applicationId);
672+
}
673+
674+
/// <summary>
675+
/// Deletes an application package used in a Scenario test.
676+
/// </summary>
677+
public static void DeleteApplicationPackage(BatchController controller, BatchAccountContext context, string applicationId, string version)
678+
{
679+
BatchClient client = new BatchClient(controller.BatchManagementClient, controller.ResourceManagementClient);
680+
681+
client.DeleteApplicationPackage(context.ResourceGroupName, context.AccountName, applicationId, version);
682+
}
683+
641684
/// <summary>
642685
/// Sleep method used for Scenario Tests. Only sleep when recording.
643686
/// </summary>

0 commit comments

Comments
 (0)