08507a3424612e5ffd57663ef6632b387a3f8d29
[aai/aai-common.git] / aai-schema-ingest / src / test / java / org / onap / aai / nodes / NodeIngestorTest.java
1 /** 
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 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  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
21  */
22
23 package org.onap.aai.nodes;
24
25 import static org.junit.Assert.*;
26
27 import org.eclipse.persistence.dynamic.DynamicEntity;
28 import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
29 import org.junit.Rule;
30 import org.junit.Test;
31 import org.junit.rules.ExpectedException;
32 import org.junit.runner.RunWith;
33 import org.onap.aai.setup.SchemaLocationsBean;
34 import org.onap.aai.setup.Version;
35 import org.onap.aai.testutils.TestUtilConfigTranslator;
36 import org.springframework.test.context.ContextConfiguration;
37 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
38 import org.springframework.beans.factory.annotation.Autowired;
39 import org.springframework.boot.test.context.SpringBootTest;
40
41 @RunWith(SpringJUnit4ClassRunner.class)
42 @ContextConfiguration(classes = {SchemaLocationsBean.class, TestUtilConfigTranslator.class, NodeIngestor.class})
43 @SpringBootTest
44 public class NodeIngestorTest {
45         @Autowired
46         NodeIngestor ni;
47         
48         //set thrown.expect to whatever a specific test needs
49         //this establishes a default of expecting no exceptions to be thrown
50         @Rule
51         public ExpectedException thrown = ExpectedException.none();
52         
53         @Test
54         public void test() {
55                 DynamicJAXBContext ctx10 = ni.getContextForVersion(Version.V10);
56                 
57                 //should work bc Foo is valid in test_network_v10 schema
58                 DynamicEntity foo10 = ctx10.newDynamicEntity("Foo");
59                 foo10.set("fooId","bar");
60                 assertTrue("bar".equals(foo10.get("fooId")));
61                 
62                 //should work bc Bar is valid in test_business_v10 schema
63                 DynamicEntity bar10 = ctx10.newDynamicEntity("Bar");
64                 bar10.set("barId","bar2");
65                 assertTrue("bar2".equals(bar10.get("barId")));
66                 
67                 
68                 DynamicJAXBContext ctx11 = ni.getContextForVersion(Version.V11);
69                 
70                 //should work bc Foo.quantity is valid in test_network_v11 schema
71                 DynamicEntity foo11 = ctx11.newDynamicEntity("Foo");
72                 foo11.set("quantity","12");
73                 assertTrue("12".equals(foo11.get("quantity")));
74                 
75                 DynamicEntity quux11 = ctx11.newDynamicEntity("Quux");
76                 quux11.set("qManagerName","some guy");
77                 assertTrue("some guy".equals(quux11.get("qManagerName")));
78                 
79                 
80                 thrown.expect(IllegalArgumentException.class);
81                 //should fail bc Quux not in v10 test schema
82                 ctx10.newDynamicEntity("Quux");
83         }
84 }