Skip to content

Commit 49cf1a2

Browse files
authored
[Purview] Add tests (Azure#34839)
1 parent 57d6a94 commit 49cf1a2

File tree

8 files changed

+3948
-17
lines changed

8 files changed

+3948
-17
lines changed

sdk/purview/Azure.ResourceManager.Purview/Azure.ResourceManager.Purview.sln

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 16
4-
VisualStudioVersion = 16.0.30309.148
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.5.33414.496
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{BA64559C-F3FC-407C-AB62-0BA086DE3778}") = "Azure.ResourceManager.Purview", "src\Azure.ResourceManager.Purview.csproj", "{E88B3748-599B-4BA7-BC4E-480D495DA9D8}"
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.ResourceManager.Purview", "src\Azure.ResourceManager.Purview.csproj", "{E88B3748-599B-4BA7-BC4E-480D495DA9D8}"
77
EndProject
8-
Project("{BA64559C-F3FC-407C-AB62-0BA086DE3778}") = "Azure.ResourceManager.Purview.Tests", "tests\Azure.ResourceManager.Purview.Tests.csproj", "{5AE4E305-258B-44A2-8428-762ABCB0E4BE}"
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.ResourceManager.Purview.Tests", "tests\Azure.ResourceManager.Purview.Tests.csproj", "{5AE4E305-258B-44A2-8428-762ABCB0E4BE}"
99
EndProject
10-
Project("{BA64559C-F3FC-407C-AB62-0BA086DE3778}") = "Azure.ResourceManager.Purview.Samples", "samples\Azure.ResourceManager.Purview.Samples.csproj", "{2A76BAA9-621F-4F84-B242-141346130E38}"
10+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.ResourceManager.Purview.Samples", "samples\Azure.ResourceManager.Purview.Samples.csproj", "{2A76BAA9-621F-4F84-B242-141346130E38}"
1111
EndProject
1212
Global
13-
GlobalSection(SolutionProperties) = preSolution
14-
HideSolutionNode = FALSE
15-
EndGlobalSection
16-
GlobalSection(ExtensibilityGlobals) = postSolution
17-
SolutionGuid = {D021C351-1BF2-433D-8B8F-2BB06B646C84}
18-
EndGlobalSection
1913
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2014
Debug|Any CPU = Debug|Any CPU
2115
Debug|x64 = Debug|x64
@@ -49,5 +43,23 @@ Global
4943
{5AE4E305-258B-44A2-8428-762ABCB0E4BE}.Release|x64.Build.0 = Release|Any CPU
5044
{5AE4E305-258B-44A2-8428-762ABCB0E4BE}.Release|x86.ActiveCfg = Release|Any CPU
5145
{5AE4E305-258B-44A2-8428-762ABCB0E4BE}.Release|x86.Build.0 = Release|Any CPU
46+
{2A76BAA9-621F-4F84-B242-141346130E38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47+
{2A76BAA9-621F-4F84-B242-141346130E38}.Debug|Any CPU.Build.0 = Debug|Any CPU
48+
{2A76BAA9-621F-4F84-B242-141346130E38}.Debug|x64.ActiveCfg = Debug|Any CPU
49+
{2A76BAA9-621F-4F84-B242-141346130E38}.Debug|x64.Build.0 = Debug|Any CPU
50+
{2A76BAA9-621F-4F84-B242-141346130E38}.Debug|x86.ActiveCfg = Debug|Any CPU
51+
{2A76BAA9-621F-4F84-B242-141346130E38}.Debug|x86.Build.0 = Debug|Any CPU
52+
{2A76BAA9-621F-4F84-B242-141346130E38}.Release|Any CPU.ActiveCfg = Release|Any CPU
53+
{2A76BAA9-621F-4F84-B242-141346130E38}.Release|Any CPU.Build.0 = Release|Any CPU
54+
{2A76BAA9-621F-4F84-B242-141346130E38}.Release|x64.ActiveCfg = Release|Any CPU
55+
{2A76BAA9-621F-4F84-B242-141346130E38}.Release|x64.Build.0 = Release|Any CPU
56+
{2A76BAA9-621F-4F84-B242-141346130E38}.Release|x86.ActiveCfg = Release|Any CPU
57+
{2A76BAA9-621F-4F84-B242-141346130E38}.Release|x86.Build.0 = Release|Any CPU
58+
EndGlobalSection
59+
GlobalSection(SolutionProperties) = preSolution
60+
HideSolutionNode = FALSE
61+
EndGlobalSection
62+
GlobalSection(ExtensibilityGlobals) = postSolution
63+
SolutionGuid = {D021C351-1BF2-433D-8B8F-2BB06B646C84}
5264
EndGlobalSection
5365
EndGlobal

sdk/purview/Azure.ResourceManager.Purview/samples/Azure.ResourceManager.Purview.Samples.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<ItemGroup>
3-
<PackageReference Include="Azure.Identity"/>
4-
<PackageReference Include="NUnit" />
5-
<PackageReference Include="NUnit3TestAdapter" />
3+
<PackageReference Include="Azure.Identity" />
4+
<PackageReference Include="NUnit" />
5+
<PackageReference Include="NUnit3TestAdapter" />
66
</ItemGroup>
77
<ItemGroup>
88
<ProjectReference Include="..\src\Azure.ResourceManager.Purview.csproj" />

sdk/purview/Azure.ResourceManager.Purview/tests/PurviewManagementTestBase.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ namespace Azure.ResourceManager.Purview.Tests
1313
public class PurviewManagementTestBase : ManagementRecordedTestBase<PurviewManagementTestEnvironment>
1414
{
1515
protected ArmClient Client { get; private set; }
16+
protected const string ResourceGroupNamePrefix = "PurviewRG";
17+
protected AzureLocation DefaultLocation = AzureLocation.EastUS;
1618

1719
protected PurviewManagementTestBase(bool isAsync, RecordedTestMode mode)
1820
: base(isAsync, mode)
@@ -30,10 +32,11 @@ public void CreateCommonClient()
3032
Client = GetArmClient();
3133
}
3234

33-
protected async Task<ResourceGroupResource> CreateResourceGroup(SubscriptionResource subscription, string rgNamePrefix, AzureLocation location)
35+
protected async Task<ResourceGroupResource> CreateResourceGroup()
3436
{
35-
string rgName = Recording.GenerateAssetName(rgNamePrefix);
36-
ResourceGroupData input = new ResourceGroupData(location);
37+
SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync();
38+
string rgName = Recording.GenerateAssetName(ResourceGroupNamePrefix);
39+
ResourceGroupData input = new ResourceGroupData(DefaultLocation);
3740
var lro = await subscription.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, rgName, input);
3841
return lro.Value;
3942
}
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
using System;
5+
using System.Collections.Generic;
6+
using System.Linq;
7+
using System.Text;
8+
using System.Threading;
9+
using System.Threading.Tasks;
10+
using Azure.Core;
11+
using Azure.Core.TestFramework;
12+
using Azure.ResourceManager.Models;
13+
using Azure.ResourceManager.Purview.Tests;
14+
using NUnit.Framework;
15+
16+
namespace Azure.ResourceManager.Purview.Samples.Scenario
17+
{
18+
internal class PurviewAccountTests : PurviewManagementTestBase
19+
{
20+
private const string _purviewAccountPrefix = "PurviewAccount";
21+
private PurviewAccountCollection _purviewAccountCollection;
22+
23+
public PurviewAccountTests(bool isAsync) : base(isAsync)
24+
{
25+
}
26+
27+
[SetUp]
28+
public async Task TestSetUp()
29+
{
30+
var rg = await CreateResourceGroup();
31+
_purviewAccountCollection = rg.GetPurviewAccounts();
32+
}
33+
34+
private async Task<PurviewAccountResource> CreatePurviewAccount(string accountName)
35+
{
36+
PurviewAccountData data = new PurviewAccountData(DefaultLocation)
37+
{
38+
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.SystemAssigned)
39+
};
40+
var purviewAccountLro = await _purviewAccountCollection.CreateOrUpdateAsync(WaitUntil.Completed, accountName, data);
41+
42+
// Wait 180 seconds for service deployment to complete.
43+
if (Mode == RecordedTestMode.Record)
44+
{
45+
Thread.Sleep(180000);
46+
}
47+
48+
return purviewAccountLro.Value;
49+
}
50+
51+
[RecordedTest]
52+
public async Task CreateOrUpdateExistGetGetAllDelete()
53+
{
54+
// CreateOrUpdate
55+
string purviewAccountName = Recording.GenerateAssetName(_purviewAccountPrefix);
56+
var purviewAccount = await CreatePurviewAccount(purviewAccountName);
57+
ValidatePurviewAccount(purviewAccount.Data, purviewAccountName);
58+
59+
// Exist
60+
var flag = await _purviewAccountCollection.ExistsAsync(purviewAccountName);
61+
Assert.IsTrue(flag);
62+
63+
// Get
64+
var getPurviewAccount = await _purviewAccountCollection.GetAsync(purviewAccountName);
65+
ValidatePurviewAccount(getPurviewAccount.Value.Data, purviewAccountName);
66+
67+
// GetAll
68+
var list = await _purviewAccountCollection.GetAllAsync().ToEnumerableAsync();
69+
Assert.IsNotEmpty(list);
70+
ValidatePurviewAccount(list.FirstOrDefault().Data, purviewAccountName);
71+
72+
// Delete
73+
await purviewAccount.DeleteAsync(WaitUntil.Completed);
74+
flag = await _purviewAccountCollection.ExistsAsync(purviewAccountName);
75+
Assert.IsFalse(flag);
76+
}
77+
78+
// The current api-version 2022-09 does donot support use GetTagResource().CreateOrUpdate()
79+
// Http400: The supported api-versions are '2020-12-01-preview, 2021-07-01, 2021-12-01'.
80+
//[TestCase(true)]
81+
//[TestCase(null)]
82+
[TestCase(false)]
83+
public async Task AddRemoveTag(bool? useTagResource)
84+
{
85+
SetTagResourceUsage(Client, useTagResource);
86+
string purviewAccountName = Recording.GenerateAssetName(_purviewAccountPrefix);
87+
var purviewAccount = await CreatePurviewAccount(purviewAccountName);
88+
89+
// AddTag
90+
await purviewAccount.AddTagAsync("addtagkey", "addtagvalue");
91+
purviewAccount = await _purviewAccountCollection.GetAsync(purviewAccountName);
92+
Assert.AreEqual(1, purviewAccount.Data.Tags.Count);
93+
KeyValuePair<string, string> tag = purviewAccount.Data.Tags.Where(tag => tag.Key == "addtagkey").FirstOrDefault();
94+
Assert.AreEqual("addtagkey", tag.Key);
95+
Assert.AreEqual("addtagvalue", tag.Value);
96+
97+
// RemoveTag
98+
await purviewAccount.RemoveTagAsync("addtagkey");
99+
purviewAccount = await _purviewAccountCollection.GetAsync(purviewAccountName);
100+
Assert.AreEqual(0, purviewAccount.Data.Tags.Count);
101+
}
102+
103+
private void ValidatePurviewAccount(PurviewAccountData purviewAccount, string purviewAccountName)
104+
{
105+
Assert.IsNotNull(purviewAccount);
106+
Assert.IsNotEmpty(purviewAccount.Id);
107+
Assert.AreEqual(purviewAccountName, purviewAccount.Name);
108+
Assert.AreEqual(DefaultLocation, purviewAccount.Location);
109+
Assert.AreEqual("Standard", purviewAccount.Sku.Name.ToString());
110+
Assert.AreEqual("SystemAssigned", purviewAccount.Identity.ManagedServiceIdentityType.ToString());
111+
}
112+
}
113+
}

0 commit comments

Comments
 (0)