2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.aaiclient.client.aai.entities.uri;
23 import static org.junit.jupiter.api.Assertions.assertEquals;
24 import static org.junit.jupiter.api.Assertions.assertNotEquals;
25 import java.io.ByteArrayInputStream;
26 import java.io.ByteArrayOutputStream;
27 import java.io.IOException;
28 import java.io.ObjectInputStream;
29 import java.io.ObjectOutputStream;
31 import org.junit.jupiter.api.Test;
32 import org.onap.aaiclient.client.aai.entities.uri.AAIPluralResourceUri;
33 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
34 import org.onap.aaiclient.client.aai.entities.uri.AAISimplePluralUri;
35 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
36 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
37 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types;
38 import org.onap.aaiclient.client.graphinventory.entities.uri.Depth;
40 public class AAISimpleUriTest {
45 public void relatedToTestPlural() {
46 AAIPluralResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
47 .relatedTo(Types.PSERVERS.getFragment());
48 String uriOutput = uri.build().toString();
50 String expected = "/network/generic-vnfs/generic-vnf/test1/related-to/pservers";
51 assertEquals(expected, uriOutput);
53 uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
54 .relatedTo(Types.PSERVERS.getFragment());
55 uriOutput = uri.build().toString();
56 assertEquals(expected, uriOutput);
60 public void relatedToTestSingular() {
61 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
62 .relatedTo(Types.PSERVER.getFragment("test2"));
63 String uriOutput = uri.build().toString();
65 String expected = "/network/generic-vnfs/generic-vnf/test1/related-to/pservers/pserver/test2";
66 assertEquals(expected, uriOutput);
68 uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
69 .relatedTo(Types.PSERVER.getFragment("test2"));
71 uriOutput = uri.build().toString();
73 assertEquals(expected, uriOutput);
78 public void cloneTestSingular() {
79 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"));
80 AAIResourceUri cloned = uri.clone();
81 assertEquals("/network/generic-vnfs/generic-vnf/test1", cloned.build().toString());
85 assertNotEquals(uri.build().toString(), cloned.build().toString());
89 public void cloneTestPlural() {
90 AAISimplePluralUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnfs());
91 AAISimplePluralUri cloned = uri.clone();
92 assertEquals("/network/generic-vnfs", cloned.build().toString());
96 public void cloneTestWithRelatedTo() {
97 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
98 .relatedTo(Types.PSERVER.getFragment("test2"));
99 String uriOutput = uri.clone().build().toString();
100 assertEquals("/network/generic-vnfs/generic-vnf/test1/related-to/pservers/pserver/test2", uriOutput);
104 public void cloneTestPluralWithRelatedTo() {
105 AAIPluralResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
106 .relatedTo(Types.PSERVERS.getFragment());
107 String uriOutput = uri.clone().build().toString();
108 assertEquals("/network/generic-vnfs/generic-vnf/test1/related-to/pservers", uriOutput);
112 public void getKeysTest() {
113 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure()
114 .cloudRegion("cloud1", "cloud2").tenant("tenant1").vserver("vserver1"));
115 Map<String, String> keys = uri.getURIKeys();
116 System.out.println(keys);
117 System.out.println(uri.build());
118 assertEquals("vserver1", keys.get("vserver-id"));
122 public void getEncodedKeyTest() {
123 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer("test1")
124 .serviceSubscription("my value").serviceInstance("test3"));
125 Map<String, String> keys = uri.getURIKeys();
127 assertEquals("my value", keys.get("service-type"));
131 public void serializeTest() throws IOException, ClassNotFoundException {
132 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"));
134 uri.depth(Depth.ONE);
136 ByteArrayOutputStream bos = new ByteArrayOutputStream();
138 ObjectOutputStream objectOutputStream = new ObjectOutputStream(bos);
139 objectOutputStream.writeObject(uri);
140 objectOutputStream.flush();
141 objectOutputStream.close();
143 ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
145 ObjectInputStream objectInputStream = new ObjectInputStream(bis);
146 AAIResourceUri e2 = (AAIResourceUri) objectInputStream.readObject();
147 objectInputStream.close();
149 uri.queryParam("test", "value");
150 e2.queryParam("test", "value");
152 assertEquals(e2.build().toString(), uri.build().toString());
156 public void fluentBuilderTest() {
157 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure()
158 .cloudRegion("cloud1", "cloud-id").tenant("tenant-id").vserver("vserver-id"));
161 "/cloud-infrastructure/cloud-regions/cloud-region/cloud1/cloud-id/tenants/tenant/tenant-id/vservers/vserver/vserver-id",
162 uri.build().toString());