d797cfb94d29c01433da139dac8ae747ded8a65f
[aaf/authz.git] / authz-cass / src / test / java / com / att / dao / aaf / test / JU_RoleDAO.java
1 /*******************************************************************************\r
2  * ============LICENSE_START====================================================\r
3  * * org.onap.aai\r
4  * * ===========================================================================\r
5  * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * * Copyright © 2017 Amdocs\r
7  * * ===========================================================================\r
8  * * Licensed under the Apache License, Version 2.0 (the "License");\r
9  * * you may not use this file except in compliance with the License.\r
10  * * You may obtain a copy of the License at\r
11  * * \r
12  *  *      http://www.apache.org/licenses/LICENSE-2.0\r
13  * * \r
14  *  * Unless required by applicable law or agreed to in writing, software\r
15  * * distributed under the License is distributed on an "AS IS" BASIS,\r
16  * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17  * * See the License for the specific language governing permissions and\r
18  * * limitations under the License.\r
19  * * ============LICENSE_END====================================================\r
20  * *\r
21  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
22  * *\r
23  ******************************************************************************/\r
24 package com.att.dao.aaf.test;\r
25 \r
26 import static junit.framework.Assert.assertEquals;\r
27 import static junit.framework.Assert.assertTrue;\r
28 \r
29 import java.io.IOException;\r
30 import java.nio.ByteBuffer;\r
31 import java.util.List;\r
32 \r
33 import org.junit.Test;\r
34 \r
35 import com.att.authz.layer.Result;\r
36 import com.att.dao.aaf.cass.PermDAO;\r
37 import com.att.dao.aaf.cass.RoleDAO;\r
38 import com.att.dao.aaf.cass.RoleDAO.Data;\r
39 import com.att.inno.env.APIException;\r
40 \r
41 \r
42 public class JU_RoleDAO extends AbsJUCass {\r
43 \r
44         @Test\r
45         public void test()  throws IOException, APIException {\r
46                 RoleDAO rd = new RoleDAO(trans, cluster, AUTHZ);\r
47                 try {\r
48                         Data data = new RoleDAO.Data();\r
49                         data.ns = "com.test.ju_role";\r
50                         data.name = "role1";\r
51 \r
52 //              Bytification\r
53                 ByteBuffer bb = data.bytify();\r
54                 Data bdata = new RoleDAO.Data();\r
55                 bdata.reconstitute(bb);\r
56                 compare(data, bdata);\r
57 \r
58                         // CREATE\r
59                         Result<Data> rdc = rd.create(trans, data);\r
60                         assertTrue(rdc.isOK());\r
61                         Result<List<Data>> rdrr;\r
62                         try {\r
63                                 // READ\r
64                                 rdrr = rd.read(trans, data);\r
65                                 assertTrue(rdrr.isOKhasData());\r
66                                 assertEquals(rdrr.value.size(),1);\r
67                                 Data d = rdrr.value.get(0);\r
68                                 assertEquals(d.perms.size(),0);\r
69                                 assertEquals(d.name,data.name);\r
70                                 assertEquals(d.ns,data.ns);\r
71 \r
72                                 PermDAO.Data perm = new PermDAO.Data();\r
73                                 perm.ns = data.ns;\r
74                                 perm.type = "Perm";\r
75                                 perm.instance = "perm1";\r
76                                 perm.action = "write";\r
77                                 \r
78                                 // ADD Perm\r
79                                 Result<Void> rdar = rd.addPerm(trans, data, perm);\r
80                                 assertTrue(rdar.isOK());\r
81                                 rdrr = rd.read(trans, data);\r
82                                 assertTrue(rdrr.isOKhasData());\r
83                                 assertEquals(rdrr.value.size(),1);\r
84                                 assertEquals(rdrr.value.get(0).perms.size(),1);\r
85                                 assertTrue(rdrr.value.get(0).perms.contains(perm.encode()));\r
86                                 \r
87                                 // DEL Perm\r
88                                 rdar = rd.delPerm(trans, data,perm);\r
89                                 assertTrue(rdar.isOK());\r
90                                 rdrr = rd.read(trans, data);\r
91                                 assertTrue(rdrr.isOKhasData());\r
92                                 assertEquals(rdrr.value.size(),1);\r
93                                 assertEquals(rdrr.value.get(0).perms.size(),0);\r
94 \r
95                                 // Add Child\r
96                                 Data data2 = new Data();\r
97                                 data2.ns = data.ns;\r
98                                 data2.name = data.name + ".2";\r
99                                 \r
100                                 rdc = rd.create(trans, data2);\r
101                                 assertTrue(rdc.isOK());\r
102                                 try {\r
103                                         rdrr = rd.readChildren(trans, data.ns,data.name);\r
104                                         assertTrue(rdrr.isOKhasData());\r
105                                         assertEquals(rdrr.value.size(),1);\r
106                                         assertEquals(rdrr.value.get(0).name,data.name + ".2");\r
107                                         \r
108                                         rdrr = rd.readChildren(trans, data.ns,"*");\r
109                                         assertTrue(rdrr.isOKhasData());\r
110                                         assertEquals(rdrr.value.size(),2);\r
111 \r
112                                 } finally {\r
113                                         // Delete Child\r
114                                         rd.delete(trans, data2, true);\r
115                                 }\r
116         \r
117                         } finally {\r
118                                 // DELETE\r
119                                 Result<Void> rddr = rd.delete(trans, data, true);\r
120                                 assertTrue(rddr.isOK());\r
121                                 rdrr = rd.read(trans, data);\r
122                                 assertTrue(rdrr.isOK() && rdrr.isEmpty());\r
123                                 assertEquals(rdrr.value.size(),0);\r
124                         }\r
125                 } finally {\r
126                         rd.close(trans);\r
127                 }\r
128         }\r
129 \r
130         private void compare(Data a, Data b) {\r
131                 assertEquals(a.name,b.name);\r
132                 assertEquals(a.description, b.description);\r
133                 assertEquals(a.ns,b.ns);\r
134                 assertEquals(a.perms(false).size(),b.perms(false).size());\r
135                 for(String p : a.perms(false)) {\r
136                         assertTrue(b.perms(false).contains(p));\r
137                 }\r
138         }\r
139 \r
140 }\r