6382be4a9256088a0d5ec1691e922bdf8cc8995b
[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.Assert.assertEquals;
24 import static org.junit.Assert.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.Test;
32 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
33 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types;
34 import org.onap.aaiclient.client.graphinventory.entities.uri.Depth;
35
36 public class AAISimpleUriTest {
37
38
39
40     @Test
41     public void relatedToTestPlural() {
42         AAIPluralResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
43                 .relatedTo(Types.PSERVERS.getFragment());
44         String uriOutput = uri.build().toString();
45
46         String expected = "/network/generic-vnfs/generic-vnf/test1/related-to/pservers";
47         assertEquals(expected, uriOutput);
48
49         uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
50                 .relatedTo(Types.PSERVERS.getFragment());
51         uriOutput = uri.build().toString();
52         assertEquals(expected, uriOutput);
53     }
54
55     @Test
56     public void relatedToTestSingular() {
57         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
58                 .relatedTo(Types.PSERVER.getFragment("test2"));
59         String uriOutput = uri.build().toString();
60
61         String expected = "/network/generic-vnfs/generic-vnf/test1/related-to/pservers/pserver/test2";
62         assertEquals(expected, uriOutput);
63
64         uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
65                 .relatedTo(Types.PSERVER.getFragment("test2"));
66
67         uriOutput = uri.build().toString();
68
69         assertEquals(expected, uriOutput);
70
71     }
72
73     @Test
74     public void cloneTestSingular() {
75         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"));
76         AAIResourceUri cloned = uri.clone();
77         assertEquals("/network/generic-vnfs/generic-vnf/test1", cloned.build().toString());
78
79         cloned.limit(2);
80
81         assertNotEquals(uri.build().toString(), cloned.build().toString());
82     }
83
84     @Test
85     public void cloneTestPlural() {
86         AAISimplePluralUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnfs());
87         AAISimplePluralUri cloned = uri.clone();
88         assertEquals("/network/generic-vnfs", cloned.build().toString());
89     }
90
91     @Test
92     public void cloneTestWithRelatedTo() {
93         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
94                 .relatedTo(Types.PSERVER.getFragment("test2"));
95         String uriOutput = uri.clone().build().toString();
96         assertEquals("/network/generic-vnfs/generic-vnf/test1/related-to/pservers/pserver/test2", uriOutput);
97     }
98
99     @Test
100     public void cloneTestPluralWithRelatedTo() {
101         AAIPluralResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"))
102                 .relatedTo(Types.PSERVERS.getFragment());
103         String uriOutput = uri.clone().build().toString();
104         assertEquals("/network/generic-vnfs/generic-vnf/test1/related-to/pservers", uriOutput);
105     }
106
107     @Test
108     public void getKeysTest() {
109         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure()
110                 .cloudRegion("cloud1", "cloud2").tenant("tenant1").vserver("vserver1"));
111         Map<String, String> keys = uri.getURIKeys();
112         System.out.println(keys);
113         System.out.println(uri.build());
114         assertEquals("vserver1", keys.get("vserver-id"));
115     }
116
117     @Test
118     public void getEncodedKeyTest() {
119         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer("test1")
120                 .serviceSubscription("my value").serviceInstance("test3"));
121         Map<String, String> keys = uri.getURIKeys();
122
123         assertEquals("my value", keys.get("service-type"));
124     }
125
126     @Test
127     public void serializeTest() throws IOException, ClassNotFoundException {
128         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("test1"));
129
130         uri.depth(Depth.ONE);
131         uri.limit(1);
132         ByteArrayOutputStream bos = new ByteArrayOutputStream();
133
134         ObjectOutputStream objectOutputStream = new ObjectOutputStream(bos);
135         objectOutputStream.writeObject(uri);
136         objectOutputStream.flush();
137         objectOutputStream.close();
138
139         ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
140
141         ObjectInputStream objectInputStream = new ObjectInputStream(bis);
142         AAIResourceUri e2 = (AAIResourceUri) objectInputStream.readObject();
143         objectInputStream.close();
144
145         uri.queryParam("test", "value");
146         e2.queryParam("test", "value");
147
148         assertEquals(e2.build().toString(), uri.build().toString());
149     }
150
151     @Test
152     public void fluentBuilderTest() {
153         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure()
154                 .cloudRegion("cloud1", "cloud-id").tenant("tenant-id").vserver("vserver-id"));
155
156         assertEquals(
157                 "/cloud-infrastructure/cloud-regions/cloud-region/cloud1/cloud-id/tenants/tenant/tenant-id/vservers/vserver/vserver-id",
158                 uri.build().toString());
159     }
160 }