AT&T 2.0.19 Code drop, stage 4
[aaf/authz.git] / authz-cass / src / test / java / org / onap / aaf / dao / aaf / test / JU_RoleDAO.java
1 /*******************************************************************************\r
2  * ============LICENSE_START====================================================\r
3  * * org.onap.aaf\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
10  * * \r
11  *  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * * \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
19  * *\r
20  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
21  * *\r
22  ******************************************************************************/\r
23 package org.onap.aaf.dao.aaf.test;\r
24 \r
25 import static junit.framework.Assert.assertEquals;\r
26 import static junit.framework.Assert.assertTrue;\r
27 \r
28 import java.io.IOException;\r
29 import java.nio.ByteBuffer;\r
30 import java.util.List;\r
31 \r
32 import org.junit.Test;\r
33 import org.onap.aaf.authz.layer.Result;\r
34 import org.onap.aaf.dao.aaf.cass.PermDAO;\r
35 import org.onap.aaf.dao.aaf.cass.RoleDAO;\r
36 import org.onap.aaf.dao.aaf.cass.RoleDAO.Data;\r
37 \r
38 import org.onap.aaf.inno.env.APIException;\r
39 \r
40 \r
41 public class JU_RoleDAO extends AbsJUCass {\r
42 \r
43         @Test\r
44         public void test()  throws IOException, APIException {\r
45                 RoleDAO rd = new RoleDAO(trans, cluster, AUTHZ);\r
46                 try {\r
47                         Data data = new RoleDAO.Data();\r
48                         data.ns = "com.test.ju_role";\r
49                         data.name = "role1";\r
50 \r
51 //              Bytification\r
52                 ByteBuffer bb = data.bytify();\r
53                 Data bdata = new RoleDAO.Data();\r
54                 bdata.reconstitute(bb);\r
55                 compare(data, bdata);\r
56 \r
57                         // CREATE\r
58                         Result<Data> rdc = rd.create(trans, data);\r
59                         assertTrue(rdc.isOK());\r
60                         Result<List<Data>> rdrr;\r
61                         try {\r
62                                 // READ\r
63                                 rdrr = rd.read(trans, data);\r
64                                 assertTrue(rdrr.isOKhasData());\r
65                                 assertEquals(rdrr.value.size(),1);\r
66                                 Data d = rdrr.value.get(0);\r
67                                 assertEquals(d.perms.size(),0);\r
68                                 assertEquals(d.name,data.name);\r
69                                 assertEquals(d.ns,data.ns);\r
70 \r
71                                 PermDAO.Data perm = new PermDAO.Data();\r
72                                 perm.ns = data.ns;\r
73                                 perm.type = "Perm";\r
74                                 perm.instance = "perm1";\r
75                                 perm.action = "write";\r
76                                 \r
77                                 // ADD Perm\r
78                                 Result<Void> rdar = rd.addPerm(trans, data, perm);\r
79                                 assertTrue(rdar.isOK());\r
80                                 rdrr = rd.read(trans, data);\r
81                                 assertTrue(rdrr.isOKhasData());\r
82                                 assertEquals(rdrr.value.size(),1);\r
83                                 assertEquals(rdrr.value.get(0).perms.size(),1);\r
84                                 assertTrue(rdrr.value.get(0).perms.contains(perm.encode()));\r
85                                 \r
86                                 // DEL Perm\r
87                                 rdar = rd.delPerm(trans, data,perm);\r
88                                 assertTrue(rdar.isOK());\r
89                                 rdrr = rd.read(trans, data);\r
90                                 assertTrue(rdrr.isOKhasData());\r
91                                 assertEquals(rdrr.value.size(),1);\r
92                                 assertEquals(rdrr.value.get(0).perms.size(),0);\r
93 \r
94                                 // Add Child\r
95                                 Data data2 = new Data();\r
96                                 data2.ns = data.ns;\r
97                                 data2.name = data.name + ".2";\r
98                                 \r
99                                 rdc = rd.create(trans, data2);\r
100                                 assertTrue(rdc.isOK());\r
101                                 try {\r
102                                         rdrr = rd.readChildren(trans, data.ns,data.name);\r
103                                         assertTrue(rdrr.isOKhasData());\r
104                                         assertEquals(rdrr.value.size(),1);\r
105                                         assertEquals(rdrr.value.get(0).name,data.name + ".2");\r
106                                         \r
107                                         rdrr = rd.readChildren(trans, data.ns,"*");\r
108                                         assertTrue(rdrr.isOKhasData());\r
109                                         assertEquals(rdrr.value.size(),2);\r
110 \r
111                                 } finally {\r
112                                         // Delete Child\r
113                                         rd.delete(trans, data2, true);\r
114                                 }\r
115         \r
116                         } finally {\r
117                                 // DELETE\r
118                                 Result<Void> rddr = rd.delete(trans, data, true);\r
119                                 assertTrue(rddr.isOK());\r
120                                 rdrr = rd.read(trans, data);\r
121                                 assertTrue(rdrr.isOK() && rdrr.isEmpty());\r
122                                 assertEquals(rdrr.value.size(),0);\r
123                         }\r
124                 } finally {\r
125                         rd.close(trans);\r
126                 }\r
127         }\r
128 \r
129         private void compare(Data a, Data b) {\r
130                 assertEquals(a.name,b.name);\r
131                 assertEquals(a.description, b.description);\r
132                 assertEquals(a.ns,b.ns);\r
133                 assertEquals(a.perms(false).size(),b.perms(false).size());\r
134                 for(String p : a.perms(false)) {\r
135                         assertTrue(b.perms(false).contains(p));\r
136                 }\r
137         }\r
138 \r
139 }\r