Skip to content

Commit e7a3083

Browse files
authored
Add lifecycle test to the ADT management SDK (Azure#18862)
1 parent aeb1c49 commit e7a3083

File tree

5 files changed

+651
-2
lines changed

5 files changed

+651
-2
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0"?>
2+
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
3+
<Configure id="Server" class="org.eclipse.jetty.server.Server">
4+
<Call name="addConnector">
5+
<Arg>
6+
<New class="org.eclipse.jetty.server.ServerConnector">
7+
<Arg name="server">
8+
<Ref refid="Server" />
9+
</Arg>
10+
<Arg name="factories">
11+
<Array type="org.eclipse.jetty.server.ConnectionFactory">
12+
<Item>
13+
<New class="org.eclipse.jetty.server.HttpConnectionFactory"/>
14+
</Item>
15+
</Array>
16+
</Arg>
17+
<Set name="port">11080</Set>
18+
</New>
19+
</Arg>
20+
</Call>
21+
</Configure>

sdk/digitaltwins/mgmt-v2020_12_01/pom.xml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<relativePath>../../parents/azure-arm-parent/pom.xml</relativePath>
1616
</parent>
1717
<artifactId>azure-mgmt-digitaltwins</artifactId>
18-
<version>1.0.0-beta</version>
18+
<version>1.0.0</version>
1919
<packaging>jar</packaging>
2020
<name>Microsoft Azure SDK for DigitalTwins Management</name>
2121
<description>This package contains Microsoft DigitalTwins Management SDK.</description>
@@ -74,6 +74,11 @@
7474
<!--Below version for test jar needs to be removed, this will be done as part of v1-runtime 1.6.7-->
7575
<version>1.6.5</version>
7676
</dependency>
77+
<dependency>
78+
<groupId>com.squareup.okhttp3</groupId>
79+
<artifactId>okhttp</artifactId>
80+
<version>3.12.12</version>
81+
</dependency>
7782
</dependencies>
7883
<build>
7984
<plugins>
@@ -130,6 +135,17 @@
130135
</bottom>
131136
</configuration>
132137
</plugin>
138+
<plugin>
139+
<groupId>org.eclipse.jetty</groupId>
140+
<artifactId>jetty-maven-plugin</artifactId>
141+
<configuration>
142+
<scanIntervalSeconds>0</scanIntervalSeconds>
143+
<stopPort>11079</stopPort>
144+
<stopKey>STOP</stopKey>
145+
<waitForChild>false</waitForChild>
146+
<jettyXml>${project.basedir}/jetty.xml</jettyXml>
147+
</configuration>
148+
</plugin>
133149
</plugins>
134150
</build>
135151
</project>

sdk/digitaltwins/mgmt-v2020_12_01/src/main/java/com/microsoft/azure/management/digitaltwins/v2020_12_01/DigitalTwins.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,4 @@ public interface DigitalTwins {
6969
* @return the observable for the request
7070
*/
7171
Observable<CheckNameResult> checkNameAvailabilityAsync(String location, String name);
72-
7372
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
package com.microsoft.azure.management.digitaltwins.v2020_12_01;
2+
3+
import com.microsoft.azure.PagedList;
4+
import com.microsoft.azure.arm.core.TestBase;
5+
import com.microsoft.azure.management.digitaltwins.v2020_12_01.implementation.CheckNameResultInner;
6+
import com.microsoft.azure.management.digitaltwins.v2020_12_01.implementation.DigitalTwinsDescriptionInner;
7+
import com.microsoft.azure.management.digitaltwins.v2020_12_01.implementation.DigitalTwinsManager;
8+
import com.microsoft.azure.management.digitaltwins.v2020_12_01.implementation.OperationInner;
9+
import com.microsoft.azure.management.resources.ResourceGroup;
10+
import com.microsoft.azure.management.resources.fluentcore.arm.Region;
11+
import com.microsoft.rest.RestClient;
12+
import com.microsoft.azure.management.resources.implementation.ResourceManager;
13+
import org.junit.Assert;
14+
import org.junit.Test;
15+
import java.io.IOException;
16+
import java.util.ArrayList;
17+
import java.util.HashMap;
18+
import java.util.Iterator;
19+
20+
public class DigitalTwinsLifecycleTests extends TestBase {
21+
22+
protected ResourceManager resourceManager;
23+
protected DigitalTwinsManager digitalTwinsManager;
24+
private static String rgName;
25+
protected String domain;
26+
private static String defaultInstanceName = "DigitalTwinsSdk";
27+
private static String defaultRegion = Region.US_WEST_CENTRAL.toString();
28+
private static String defaultResourceGroupName = "rg2b9842374ecf6";
29+
30+
@Override
31+
protected void initializeClients(RestClient restClient, String defaultSubscription, String domain) throws IOException {
32+
resourceManager = ResourceManager
33+
.authenticate(restClient)
34+
.withSubscription(defaultSubscription);
35+
36+
digitalTwinsManager = DigitalTwinsManager
37+
.authenticate(restClient, defaultSubscription);
38+
39+
this.domain = domain;
40+
}
41+
42+
@Test
43+
public void lifecycleTest() throws InterruptedException {
44+
rgName = defaultResourceGroupName;
45+
46+
ResourceGroup group = resourceManager.resourceGroups()
47+
.define(rgName)
48+
.withRegion(defaultRegion)
49+
.create();
50+
51+
Assert.assertNotNull(group);
52+
53+
try {
54+
CheckNameResultInner checkNameResult = digitalTwinsManager.inner().digitalTwins()
55+
.checkNameAvailability(defaultRegion, defaultInstanceName);
56+
57+
if (!checkNameResult.nameAvailable()) {
58+
Iterator<DigitalTwinsDescription> allDigitalTwins = digitalTwinsManager
59+
.digitalTwins()
60+
.listAsync()
61+
.toBlocking()
62+
.getIterator();
63+
64+
while (allDigitalTwins.hasNext()) {
65+
DigitalTwinsDescription digitalTwin = allDigitalTwins.next();
66+
if (digitalTwin.name().equals(defaultInstanceName)){
67+
String existingResourceGroupName = digitalTwin.resourceGroupName();
68+
digitalTwinsManager.inner()
69+
.digitalTwins()
70+
.delete(existingResourceGroupName, defaultInstanceName);
71+
72+
break;
73+
}
74+
}
75+
76+
checkNameResult = digitalTwinsManager.inner()
77+
.digitalTwins()
78+
.checkNameAvailability(defaultRegion, defaultInstanceName);
79+
80+
Assert.assertTrue(checkNameResult.nameAvailable());
81+
}
82+
83+
// Create DigitalTwins resource
84+
DigitalTwinsDescription instance = digitalTwinsManager
85+
.digitalTwins()
86+
.defineDigitalTwinsInstance(defaultInstanceName)
87+
.withRegion(defaultRegion)
88+
.withExistingResourceGroup(rgName)
89+
.create();
90+
91+
Assert.assertNotNull(instance);
92+
Assert.assertEquals(defaultInstanceName, instance.name());
93+
Assert.assertEquals(defaultRegion, instance.region().toString());
94+
95+
// Add and get tags
96+
final String key1 = "Key1";
97+
final String value1 = "Value1";
98+
final String key2 = "Key2";
99+
final String value2 = "Value2";
100+
101+
DigitalTwinsDescriptionInner updatedDt = digitalTwinsManager.inner()
102+
.digitalTwins()
103+
.update(rgName, defaultInstanceName, new DigitalTwinsPatchDescription()
104+
.withTags(new HashMap<String, String>(){{
105+
put(key1, value1);
106+
put(key2, value2);
107+
}}));
108+
109+
Assert.assertTrue(updatedDt.getTags().get(key1).equals(value1));
110+
Assert.assertTrue(updatedDt.getTags().get(key2).equals(value2));
111+
112+
PagedList list = digitalTwinsManager
113+
.inner()
114+
.digitalTwins().listByResourceGroup(rgName);
115+
116+
Assert.assertTrue(list.size() > 0);
117+
118+
Object[] array = digitalTwinsManager.inner().operations().list().toArray();
119+
120+
ArrayList<String> myOpNames = new ArrayList<>();
121+
for (Object op : array) {
122+
myOpNames.add(((OperationInner) op).name());
123+
}
124+
125+
Assert.assertTrue(myOpNames.contains("Microsoft.DigitalTwins/digitalTwinsInstances/read"));
126+
Assert.assertTrue(myOpNames.contains("Microsoft.DigitalTwins/digitalTwinsInstances/write"));
127+
Assert.assertTrue(myOpNames.contains("Microsoft.DigitalTwins/digitalTwinsInstances/delete"));
128+
Assert.assertTrue(myOpNames.contains("Microsoft.DigitalTwins/eventroutes/read"));
129+
Assert.assertTrue(myOpNames.contains("Microsoft.DigitalTwins/digitaltwins/read"));
130+
Assert.assertTrue(myOpNames.contains("Microsoft.DigitalTwins/models/read"));
131+
}
132+
finally {
133+
resourceManager.resourceGroups().beginDeleteByName(rgName);
134+
}
135+
}
136+
137+
@Override
138+
protected void cleanUpResources() {
139+
resourceManager.resourceGroups().deleteByName(rgName);
140+
}
141+
}

0 commit comments

Comments
 (0)