AAI-1523 Batch reformat aai-core
[aai/aai-common.git] / aai-core / src / test / java / org / onap / aai / parsers / uri / URIParserTest.java
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017-2018 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.aai.parsers.uri;
22
23 import static org.hamcrest.Matchers.hasProperty;
24 import static org.hamcrest.Matchers.is;
25
26 import java.io.UnsupportedEncodingException;
27 import java.net.URI;
28
29 import javax.annotation.PostConstruct;
30 import javax.ws.rs.core.UriBuilder;
31 import javax.xml.bind.JAXBException;
32
33 import org.junit.Rule;
34 import org.junit.Test;
35 import org.junit.rules.ExpectedException;
36 import org.onap.aai.AAISetup;
37 import org.onap.aai.exceptions.AAIException;
38 import org.onap.aai.introspection.Loader;
39 import org.onap.aai.introspection.ModelType;
40 import org.onap.aai.setup.SchemaVersion;
41
42 public class URIParserTest extends AAISetup {
43
44     private Loader loader;
45
46     @Rule
47     public ExpectedException thrown = ExpectedException.none();
48
49     /**
50      * Invalid path.
51      *
52      * @throws JAXBException the JAXB exception
53      * @throws AAIException the AAI exception
54      * @throws IllegalArgumentException the illegal argument exception
55      * @throws UnsupportedEncodingException the unsupported encoding exception
56      */
57     @PostConstruct
58     public void createLoader() {
59         loader = loaderFactory.createLoaderForVersion(ModelType.MOXY, new SchemaVersion("v10"));
60     }
61
62     @Test
63     public void invalidPath()
64             throws JAXBException, AAIException, IllegalArgumentException, UnsupportedEncodingException {
65         URI uri =
66                 UriBuilder
67                         .fromPath("/aai/" + loader.getVersion()
68                                 + "/network/tenants/tenant/key1/vservers/vserver/key2/l-interfaces/l-interface/key3")
69                         .build();
70
71         thrown.expect(AAIException.class);
72         thrown.expect(hasProperty("code", is("AAI_3001")));
73
74         new URIToDBKey(loader, uri);
75     }
76
77     /**
78      * Invalid path no name space.
79      *
80      * @throws JAXBException the JAXB exception
81      * @throws AAIException the AAI exception
82      * @throws IllegalArgumentException the illegal argument exception
83      * @throws UnsupportedEncodingException the unsupported encoding exception
84      */
85     @Test
86     public void invalidPathNoNameSpace()
87             throws JAXBException, AAIException, IllegalArgumentException, UnsupportedEncodingException {
88         URI uri = UriBuilder.fromPath("/aai/" + loader.getVersion()
89                 + "/tenants/tenant/key1/vservers/vserver/key2/l-interfaces/l-interface/key3").build();
90
91         thrown.expect(AAIException.class);
92         thrown.expect(hasProperty("code", is("AAI_3000")));
93
94         new URIToDBKey(loader, uri);
95     }
96
97     /**
98      * Invalid path partial.
99      *
100      * @throws JAXBException the JAXB exception
101      * @throws AAIException the AAI exception
102      * @throws IllegalArgumentException the illegal argument exception
103      * @throws UnsupportedEncodingException the unsupported encoding exception
104      */
105     @Test
106     public void invalidPathPartial()
107             throws JAXBException, AAIException, IllegalArgumentException, UnsupportedEncodingException {
108         URI uri = UriBuilder.fromPath("vservers/vserver/key2/l-interfaces/l-interface/key3").build();
109
110         thrown.expect(AAIException.class);
111         thrown.expect(hasProperty("code", is("AAI_3000")));
112
113         new URIToDBKey(loader, uri);
114     }
115 }