0de7d54d0a248e0f6ee710f8239409db98cd3034
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  */
20
21 package org.onap.aaiclient.client.aai.entities.uri;
22
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;
30 import java.util.Map;
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;
39
40 public class AAISimpleUriTest {
41
42
43
44     @Test
45     public void relatedToTestPlural() {
46         AAIPluralResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
47                 .relatedTo(Types.PSERVERS.getFragment());
48         String uriOutput = uri.build().toString();
49
50         String expected = "/network/generic-vnfs/generic-vnf/test1/related-to/pservers";
51         assertEquals(expected, uriOutput);
52
53         uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
54                 .relatedTo(Types.PSERVERS.getFragment());
55         uriOutput = uri.build().toString();
56         assertEquals(expected, uriOutput);
57     }
58
59     @Test
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();
64
65         String expected = "/network/generic-vnfs/generic-vnf/test1/related-to/pservers/pserver/test2";
66         assertEquals(expected, uriOutput);
67
68         uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
69                 .relatedTo(Types.PSERVER.getFragment("test2"));
70
71         uriOutput = uri.build().toString();
72
73         assertEquals(expected, uriOutput);
74
75     }
76
77     @Test
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());
82
83         cloned.limit(2);
84
85         assertNotEquals(uri.build().toString(), cloned.build().toString());
86     }
87
88     @Test
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());
93     }
94
95     @Test
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);
101     }
102
103     @Test
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);
109     }
110
111     @Test
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"));
119     }
120
121     @Test
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();
126
127         assertEquals("my value", keys.get("service-type"));
128     }
129
130     @Test
131     public void serializeTest() throws IOException, ClassNotFoundException {
132         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"));
133
134         uri.depth(Depth.ONE);
135         uri.limit(1);
136         ByteArrayOutputStream bos = new ByteArrayOutputStream();
137
138         ObjectOutputStream objectOutputStream = new ObjectOutputStream(bos);
139         objectOutputStream.writeObject(uri);
140         objectOutputStream.flush();
141         objectOutputStream.close();
142
143         ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
144
145         ObjectInputStream objectInputStream = new ObjectInputStream(bis);
146         AAIResourceUri e2 = (AAIResourceUri) objectInputStream.readObject();
147         objectInputStream.close();
148
149         uri.queryParam("test", "value");
150         e2.queryParam("test", "value");
151
152         assertEquals(e2.build().toString(), uri.build().toString());
153     }
154
155     @Test
156     public void fluentBuilderTest() {
157         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure()
158                 .cloudRegion("cloud1", "cloud-id").tenant("tenant-id").vserver("vserver-id"));
159
160         assertEquals(
161                 "/cloud-infrastructure/cloud-regions/cloud-region/cloud1/cloud-id/tenants/tenant/tenant-id/vservers/vserver/vserver-id",
162                 uri.build().toString());
163     }
164 }