1 /*******************************************************************************
\r
2 * ============LICENSE_START====================================================
\r
4 * * ===========================================================================
\r
5 * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * * ===========================================================================
\r
7 * * Licensed under the Apache License, Version 2.0 (the "License");
\r
8 * * you may not use this file except in compliance with the License.
\r
9 * * You may obtain a copy of the License at
\r
11 * * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * * Unless required by applicable law or agreed to in writing, software
\r
14 * * distributed under the License is distributed on an "AS IS" BASIS,
\r
15 * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 * * See the License for the specific language governing permissions and
\r
17 * * limitations under the License.
\r
18 * * ============LICENSE_END====================================================
\r
20 * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
\r
22 ******************************************************************************/
\r
23 package org.onap.aaf.dao.aaf.test;
\r
25 import static org.junit.Assert.assertEquals;
\r
26 import static org.junit.Assert.assertFalse;
\r
27 import static org.junit.Assert.assertTrue;
\r
29 import java.io.IOException;
\r
30 import java.nio.ByteBuffer;
\r
31 import java.util.HashMap;
\r
32 import java.util.List;
\r
33 import java.util.Map;
\r
34 import java.util.Map.Entry;
\r
35 import java.util.Set;
\r
37 import org.junit.Test;
\r
38 import org.onap.aaf.authz.layer.Result;
\r
39 import org.onap.aaf.dao.aaf.cass.NsDAO;
\r
40 import org.onap.aaf.dao.aaf.cass.NsType;
\r
41 import org.onap.aaf.dao.aaf.cass.NsDAO.Data;
\r
43 import org.onap.aaf.inno.env.APIException;
\r
46 public class JU_NsDAO extends AbsJUCass {
\r
47 private static final String CRM = "ju_crm";
\r
48 private static final String SWM = "ju_swm";
\r
51 public void test() throws APIException, IOException {
\r
52 NsDAO nsd = new NsDAO(trans, cluster, AUTHZ);
\r
54 final String nsparent = "com.test";
\r
55 final String ns1 = nsparent +".ju_ns";
\r
56 final String ns2 = nsparent + ".ju_ns2";
\r
58 Map<String,String> oAttribs = new HashMap<String,String>();
\r
59 oAttribs.put(SWM, "swm_data");
\r
60 oAttribs.put(CRM, "crm_data");
\r
61 Data data = new NsDAO.Data();
\r
63 data.type = NsType.APP.type;
\r
64 data.attrib(true).putAll(oAttribs);
\r
67 Result<List<Data>> rdrr;
\r
70 Result<Data> rdc = nsd.create(trans, data);
\r
71 assertTrue(rdc.isOK());
\r
75 ByteBuffer bb = data.bytify();
\r
76 Data bdata = new NsDAO.Data();
\r
77 bdata.reconstitute(bb);
\r
78 compare(data, bdata);
\r
80 // Test READ by Object
\r
81 rdrr = nsd.read(trans, data);
\r
82 assertTrue(rdrr.isOKhasData());
\r
83 assertEquals(rdrr.value.size(),1);
\r
84 Data d = rdrr.value.get(0);
\r
85 assertEquals(d.name,data.name);
\r
86 assertEquals(d.type,data.type);
\r
87 attribsEqual(d.attrib(false),data.attrib(false));
\r
88 attribsEqual(oAttribs,data.attrib(false));
\r
91 rdrr = nsd.read(trans, data.name);
\r
92 assertTrue(rdrr.isOKhasData());
\r
93 assertEquals(rdrr.value.size(),1);
\r
94 d = rdrr.value.get(0);
\r
95 assertEquals(d.name,data.name);
\r
96 assertEquals(d.type,data.type);
\r
97 attribsEqual(d.attrib(false),data.attrib(false));
\r
98 attribsEqual(oAttribs,data.attrib(false));
\r
101 Result<Set<String>> rtypes = nsd.readNsByAttrib(trans, SWM);
\r
103 if(rtypes.notOK()) {
\r
104 throw new IOException(rtypes.errorString());
\r
106 types = rtypes.value;
\r
108 assertEquals(1,types.size());
\r
109 assertEquals(true,types.contains(ns1));
\r
111 // Add second NS to test list of data returned
\r
112 Data data2 = new NsDAO.Data();
\r
114 data2.type = 3; // app
\r
115 Result<Data> rdc2 = nsd.create(trans, data2);
\r
116 assertTrue(rdc2.isOK());
\r
118 // Interrupt - test PARENT
\r
119 Result<List<Data>> rdchildren = nsd.getChildren(trans, "com.test");
\r
120 assertTrue(rdchildren.isOKhasData());
\r
121 boolean child1 = false;
\r
122 boolean child2 = false;
\r
123 for(Data dchild : rdchildren.value) {
\r
124 if(ns1.equals(dchild.name))child1=true;
\r
125 if(ns2.equals(dchild.name))child2=true;
\r
127 assertTrue(child1);
\r
128 assertTrue(child2);
\r
130 // FINISH DATA 2 by deleting
\r
131 Result<Void> rddr = nsd.delete(trans, data2, true);
\r
132 assertTrue(rddr.isOK());
\r
135 String description = "This is my test Namespace";
\r
136 assertFalse(description.equalsIgnoreCase(data.description));
\r
138 Result<Void> addDesc = nsd.addDescription(trans, data.name, description);
\r
139 assertTrue(addDesc.isOK());
\r
140 rdrr = nsd.read(trans, data);
\r
141 assertTrue(rdrr.isOKhasData());
\r
142 assertEquals(rdrr.value.size(),1);
\r
143 assertEquals(rdrr.value.get(0).description,description);
\r
146 String newDescription = "zz1234 Owns This Namespace Now";
\r
147 oAttribs.put("mso", "mso_data");
\r
148 data.attrib(true).put("mso", "mso_data");
\r
149 data.description = newDescription;
\r
150 Result<Void> update = nsd.update(trans, data);
\r
151 assertTrue(update.isOK());
\r
152 rdrr = nsd.read(trans, data);
\r
153 assertTrue(rdrr.isOKhasData());
\r
154 assertEquals(rdrr.value.size(),1);
\r
155 assertEquals(rdrr.value.get(0).description,newDescription);
\r
156 attribsEqual(oAttribs, rdrr.value.get(0).attrib);
\r
159 } catch (IOException e) {
\r
160 e.printStackTrace();
\r
163 Result<Void> rddr = nsd.delete(trans, data, true);
\r
164 assertTrue(rddr.isOK());
\r
165 rdrr = nsd.read(trans, data);
\r
166 assertTrue(rdrr.isOK() && rdrr.isEmpty());
\r
167 assertEquals(rdrr.value.size(),0);
\r
174 private void compare(NsDAO.Data d, NsDAO.Data data) {
\r
175 assertEquals(d.name,data.name);
\r
176 assertEquals(d.type,data.type);
\r
177 attribsEqual(d.attrib(false),data.attrib(false));
\r
178 attribsEqual(d.attrib(false),data.attrib(false));
\r
181 private void attribsEqual(Map<String,String> aa, Map<String,String> ba) {
\r
182 assertEquals(aa.size(),ba.size());
\r
183 for(Entry<String, String> es : aa.entrySet()) {
\r
184 assertEquals(es.getValue(),ba.get(es.getKey()));
\r