Remove spaces from dockerbuild script
[aaf/authz.git] / auth / auth-cass / src / test / java / com / att / dao / aaf / test / JU_Bytification.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 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
22 package com.att.dao.aaf.test;
23
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertTrue;
26
27 import java.io.IOException;
28 import java.nio.ByteBuffer;
29 import java.util.Date;
30
31 import org.junit.Test;
32 import org.onap.aaf.auth.dao.cass.CredDAO;
33 import org.onap.aaf.auth.dao.cass.NsDAO;
34 import org.onap.aaf.auth.dao.cass.NsType;
35 import org.onap.aaf.auth.dao.cass.PermDAO;
36 import org.onap.aaf.auth.dao.cass.RoleDAO;
37 import org.onap.aaf.auth.dao.cass.UserRoleDAO;
38
39 public class JU_Bytification {
40
41         @Test
42         public void testNS() throws IOException {
43                 
44                 // Normal
45                 NsDAO.Data ns = new NsDAO.Data();
46                 ns.name = "org.osaaf.whatever";
47                 ns.type = NsType.APP.type;
48
49                 ByteBuffer bb = ns.bytify();
50                 
51                 NsDAO.Data nsr = new NsDAO.Data();
52                 nsr.reconstitute(bb);
53                 check(ns,nsr);
54                 
55                 // Empty admin
56 //              ns.admin(true).clear();
57                 bb = ns.bytify();
58                 nsr = new NsDAO.Data();
59                 nsr.reconstitute(bb);
60                 check(ns,nsr);
61                 
62                 // Empty responsible
63 //              ns.responsible(true).clear();
64                 bb = ns.bytify();
65                 nsr = new NsDAO.Data();
66                 nsr.reconstitute(bb);
67                 check(ns,nsr);
68
69                 bb = ns.bytify();
70                 nsr = new NsDAO.Data();
71                 nsr.reconstitute(bb);
72                 check(ns,nsr);
73         }
74         
75         private void check(NsDAO.Data a, NsDAO.Data b) {
76                 assertEquals(a.name,b.name);
77                 assertEquals(a.type,b.type);
78 //              assertEquals(a.admin.size(),b.admin.size());
79                 
80 //              for(String s: a.admin) {
81 //                      assertTrue(b.admin.contains(s));
82 //              }
83 //              
84 //              assertEquals(a.responsible.size(),b.responsible.size());
85 //              for(String s: a.responsible) {
86 //                      assertTrue(b.responsible.contains(s));
87 //              }
88         }
89
90         @Test
91         public void testRole() throws IOException {
92                 RoleDAO.Data rd1 = new RoleDAO.Data();
93                 rd1.ns = "org.osaaf.whatever";
94                 rd1.name = "my.role";
95                 rd1.perms(true).add("org.osaaf.whatever.my.Perm|myInstance|myAction");
96                 rd1.perms(true).add("org.osaaf.whatever.my.Perm|myInstance|myAction2");
97
98                 // Normal
99                 ByteBuffer bb = rd1.bytify();
100                 RoleDAO.Data rd2 = new RoleDAO.Data();
101                 rd2.reconstitute(bb);
102                 check(rd1,rd2);
103                 
104                 // Overshoot Buffer
105                 StringBuilder sb = new StringBuilder(300);
106                 sb.append("role|instance|veryLongAction...");
107                 for(int i=0;i<280;++i) {
108                         sb.append('a');
109                 }
110                 rd1.perms(true).add(sb.toString());
111                 bb = rd1.bytify();
112                 rd2 = new RoleDAO.Data();
113                 rd2.reconstitute(bb);
114                 check(rd1,rd2);
115                 
116                 // No Perms
117                 rd1.perms.clear();
118                 
119                 bb = rd1.bytify();
120                 rd2 = new RoleDAO.Data();
121                 rd2.reconstitute(bb);
122                 check(rd1,rd2);
123                 
124                 // 1000 Perms
125                 for(int i=0;i<1000;++i) {
126                         rd1.perms(true).add("com|inst|action"+ i);
127                 }
128
129                 bb = rd1.bytify();
130                 rd2 = new RoleDAO.Data();
131                 rd2.reconstitute(bb);
132                 check(rd1,rd2);
133
134         }
135         
136         private void check(RoleDAO.Data a, RoleDAO.Data b) {
137                 assertEquals(a.ns,b.ns);
138                 assertEquals(a.name,b.name);
139                 
140                 assertEquals(a.perms.size(),b.perms.size());
141                 for(String s: a.perms) {
142                         assertTrue(b.perms.contains(s));
143                 }
144         }
145
146         @Test
147         public void testPerm() throws IOException {
148                 PermDAO.Data pd1 = new PermDAO.Data();
149                 pd1.ns = "org.osaaf.whatever";
150                 pd1.type = "my.perm";
151                 pd1.instance = "instance";
152                 pd1.action = "read";
153                 pd1.roles(true).add("org.osaaf.whatever.my.Role");
154                 pd1.roles(true).add("org.osaaf.whatever.my.Role2");
155
156                 // Normal
157                 ByteBuffer bb = pd1.bytify();
158                 PermDAO.Data rd2 = new PermDAO.Data();
159                 rd2.reconstitute(bb);
160                 check(pd1,rd2);
161                 
162                 // No Perms
163                 pd1.roles.clear();
164                 
165                 bb = pd1.bytify();
166                 rd2 = new PermDAO.Data();
167                 rd2.reconstitute(bb);
168                 check(pd1,rd2);
169                 
170                 // 1000 Perms
171                 for(int i=0;i<1000;++i) {
172                         pd1.roles(true).add("org.osaaf.whatever.my.Role"+ i);
173                 }
174
175                 bb = pd1.bytify();
176                 rd2 = new PermDAO.Data();
177                 rd2.reconstitute(bb);
178                 check(pd1,rd2);
179
180         }
181         
182         private void check(PermDAO.Data a, PermDAO.Data b) {
183                 assertEquals(a.ns,b.ns);
184                 assertEquals(a.type,b.type);
185                 assertEquals(a.instance,b.instance);
186                 assertEquals(a.action,b.action);
187                 
188                 assertEquals(a.roles.size(),b.roles.size());
189                 for(String s: a.roles) {
190                         assertTrue(b.roles.contains(s));
191                 }
192         }
193
194         @Test
195         public void testUserRole() throws IOException {
196                 UserRoleDAO.Data urd1 = new UserRoleDAO.Data();
197 //              TODO: Clean out AT&T specific data
198                 urd1.user = "jg1555@abc.att.com";
199                 urd1.role("org.osaaf.whatever","my.role");
200                 urd1.expires = new Date();
201
202                 // Normal
203                 ByteBuffer bb = urd1.bytify();
204                 UserRoleDAO.Data urd2 = new UserRoleDAO.Data();
205                 urd2.reconstitute(bb);
206                 check(urd1,urd2);
207                 
208                 // A null
209                 urd1.expires = null; 
210                 urd1.role = null;
211                 
212                 bb = urd1.bytify();
213                 urd2 = new UserRoleDAO.Data();
214                 urd2.reconstitute(bb);
215                 check(urd1,urd2);
216         }
217
218         private void check(UserRoleDAO.Data a, UserRoleDAO.Data b) {
219                 assertEquals(a.user,b.user);
220                 assertEquals(a.role,b.role);
221                 assertEquals(a.expires,b.expires);
222         }
223
224         
225         @Test
226         public void testCred() throws IOException {
227                 CredDAO.Data cd = new CredDAO.Data();
228                 cd.id = "m55555@abc.att.com";
229                 cd.ns = "org.osaaf.abc";
230                 cd.type = 2;
231                 cd.cred = ByteBuffer.wrap(new byte[]{1,34,5,3,25,0,2,5,3,4});
232                 cd.expires = new Date();
233
234                 // Normal
235                 ByteBuffer bb = cd.bytify();
236                 CredDAO.Data cd2 = new CredDAO.Data();
237                 cd2.reconstitute(bb);
238                 check(cd,cd2);
239                 
240                 // nulls
241                 cd.expires = null;
242                 cd.cred = null;
243                 
244                 bb = cd.bytify();
245                 cd2 = new CredDAO.Data();
246                 cd2.reconstitute(bb);
247                 check(cd,cd2);
248
249         }
250
251         private void check(CredDAO.Data a, CredDAO.Data b) {
252                 assertEquals(a.id,b.id);
253                 assertEquals(a.ns,b.ns);
254                 assertEquals(a.type,b.type);
255                 if(a.cred==null) {
256                         assertEquals(a.cred,b.cred); 
257                 } else {
258                         int l = a.cred.limit();
259                         assertEquals(l,b.cred.limit());
260                         for (int i=0;i<l;++i) {
261                                 assertEquals(a.cred.get(),b.cred.get());
262                         }
263                 }
264         }
265
266 }