5cd6d4cb0dd54c4d93b21418738c25f9b7894753
[aaf/authz.git] / authz-cass / src / test / java / com / att / dao / aaf / test / JU_CredDAO.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 org.junit.Assert.assertEquals;\r
27 import static org.junit.Assert.assertTrue;\r
28 \r
29 import java.io.IOException;\r
30 import java.nio.ByteBuffer;\r
31 import java.security.NoSuchAlgorithmException;\r
32 import java.util.Date;\r
33 import java.util.List;\r
34 \r
35 import org.junit.Test;\r
36 \r
37 import com.att.authz.layer.Result;\r
38 import com.att.dao.aaf.cass.CredDAO;\r
39 import com.att.dao.aaf.cass.CredDAO.Data;\r
40 import com.att.inno.env.APIException;\r
41 \r
42 /**\r
43  * UserDAO unit test.\r
44  * User: tp007s\r
45  * Date: 7/19/13\r
46  */\r
47 public class JU_CredDAO  extends AbsJUCass {\r
48         @Test\r
49         public void test() throws IOException, NoSuchAlgorithmException, APIException {\r
50                 CredDAO udao = new CredDAO(trans,cluster,"authz");\r
51                 try {\r
52                         // Create\r
53                 CredDAO.Data data = new CredDAO.Data();\r
54                 data.id = "m55555@aaf.att.com";\r
55                 data.type = CredDAO.BASIC_AUTH;\r
56                 data.notes = "temp pass";\r
57                 data.cred      = ByteBuffer.wrap(userPassToBytes("m55555","mypass"));\r
58                 data.other = 12;\r
59                 data.expires = new Date(System.currentTimeMillis() + 60000*60*24*90);\r
60                         udao.create(trans,data);\r
61                         \r
62 //              Bytification\r
63                 ByteBuffer bb = data.bytify();\r
64                 Data bdata = new CredDAO.Data();\r
65                 bdata.reconstitute(bb);\r
66                 checkData1(data, bdata);\r
67 \r
68                         // Validate Read with key fields in Data\r
69                         Result<List<CredDAO.Data>> rlcd = udao.read(trans,data);\r
70                         assertTrue(rlcd.isOKhasData());\r
71                         for(CredDAO.Data d : rlcd.value) {\r
72                                 checkData1(data,d);\r
73                         }\r
74                         \r
75                         // Update\r
76                         data.cred = ByteBuffer.wrap(userPassToBytes("m55555","mynewpass"));\r
77                         udao.update(trans,data);\r
78                         rlcd = udao.read(trans,data);\r
79                         assertTrue(rlcd.isOKhasData());\r
80                         for(CredDAO.Data d : rlcd.value) {\r
81                                 checkData1(data,d);\r
82                         }                       \r
83                         \r
84                         udao.delete(trans,data, true);\r
85                 } finally {\r
86                         udao.close(trans);\r
87                 }\r
88 \r
89                 \r
90         }\r
91 \r
92         private void checkData1(Data data, Data d) {\r
93                 assertEquals(data.id,d.id);\r
94                 assertEquals(data.type,d.type);\r
95                 assertEquals(data.ns,d.ns);\r
96                 assertEquals(data.notes,d.notes);\r
97                 assertEquals(data.cred,d.cred);\r
98                 assertEquals(data.other,d.other);\r
99                 assertEquals(data.expires,d.expires);\r
100         }\r
101 \r
102 //    private String                          CONST_myName = "MyName";\r
103 //    public static final java.nio.ByteBuffer CONST_MY_CRED = get_CONST_MY_CRED();\r
104 //    public static final int                 CONST_CRED_TYPE = 11;\r
105 //\r
106 //    public static final Date                CONST_UPDATE_DATE = new Date(System.currentTimeMillis()+60000*24);\r
107 //    @Test\r
108 //    public void test() {\r
109 //        UserDAO ud = new UserDAO(trans, cluster,"authz");\r
110 //        try {\r
111 //            UserDAO.Data data = createPrototypeUserData();\r
112 //            ud.create(trans, data);\r
113 //\r
114 //            // Validate Read with key fields in Data\r
115 //            for(UserDAO.Data d : ud.read(trans, data)) {\r
116 //                checkData1(data,d);\r
117 //            }\r
118 //\r
119 //            // Validate readByName\r
120 //            for(UserDAO.Data d : ud.read(trans, CONST_myName)) {\r
121 //                checkData1(data,d);\r
122 //            }\r
123 //\r
124 //            ud.delete(trans, data);\r
125 //            List<UserDAO.Data> d_2 = ud.read(trans, CONST_myName);\r
126 //\r
127 //            // Validate that data was deleted\r
128 //            assertEquals("User should not be found after deleted", 0, d_2.size() );\r
129 //\r
130 //            data = new UserDAO.Data();\r
131 //            data.name = CONST_myName;\r
132 //            data.cred = CONST_MY_CRED;\r
133 //            data.cred_type= CONST_CRED_TYPE;\r
134 //            data.expires = new Date(System.currentTimeMillis()+60000*24);\r
135 //            final Result<UserDAO.Data> user = ud.r_create(trans, data);\r
136 //            assertEquals("ud.createUser should work", Result.Status.OK, user.status);\r
137 //\r
138 //            checkDataIgnoreDateDiff(data, user.value);\r
139 //\r
140 //            // finally leave system in consistent state by deleting user again\r
141 //            ud.delete(trans,data);\r
142 //\r
143 //        } catch (DAOException e) {\r
144 //            e.printStackTrace();\r
145 //            fail("Fail due to Exception");\r
146 //        } finally {\r
147 //            ud.close(trans);\r
148 //        }\r
149 //    }\r
150 //\r
151 //    private UserDAO.Data createPrototypeUserData() {\r
152 //        UserDAO.Data data = new UserDAO.Data();\r
153 //        data.name = CONST_myName;\r
154 //\r
155 //        data.cred_type = CONST_CRED_TYPE;\r
156 //        data.cred      = CONST_MY_CRED;\r
157 //        data.expires = CONST_UPDATE_DATE;\r
158 //        return data;\r
159 //    }\r
160 //\r
161 //    //    @Test\r
162 //    //    public void testReadByUser() throws Exception {\r
163 //    //           // this test was done above in our super test, since it uses the same setup\r
164 //    //    }\r
165 //\r
166 //    @Test\r
167 //    public void testFunctionCreateUser() throws Exception {\r
168 //        String name = "roger_rabbit";\r
169 //        Integer credType = CONST_CRED_TYPE;\r
170 //        java.nio.ByteBuffer cred = CONST_MY_CRED;\r
171 //        final UserDAO ud = new UserDAO(trans, cluster,"authz");\r
172 //        final UserDAO.Data data = createPrototypeUserData();\r
173 //        Result<UserDAO.Data> ret = ud.r_create(trans, data);\r
174 //        Result<List<Data>> byUserNameLookup = ud.r_read(trans, name);\r
175 //        \r
176 //        assertEquals("sanity test w/ different username (different than other test cases) failed", name, byUserNameLookup.value.get(0).name);\r
177 //        assertEquals("delete roger_rabbit failed", true, ud.delete(trans, byUserNameLookup.value.get(0)));\r
178 //    }\r
179 //\r
180 //    @Test\r
181 //    public void testLowLevelCassandraCreateData_Given_UserAlreadyPresent_ShouldPass() throws Exception {\r
182 //        UserDAO ud = new UserDAO(trans, cluster,"authz");\r
183 //\r
184 //        final UserDAO.Data data = createPrototypeUserData();\r
185 //        final UserDAO.Data data1 = ud.create(trans, data);\r
186 //        final UserDAO.Data data2 = ud.create(trans, data);\r
187 //\r
188 //        assertNotNull(data1);\r
189 //        assertNotNull(data2);\r
190 //\r
191 //        assertEquals(CONST_myName, data1.name);\r
192 //        assertEquals(CONST_myName, data2.name);\r
193 //    }\r
194 //\r
195 //    @Test\r
196 //    public void testCreateUser_Given_UserAlreadyPresent_ShouldFail() throws Exception {\r
197 //        UserDAO ud = new UserDAO(trans, cluster,"authz");\r
198 //\r
199 //        final UserDAO.Data data = createPrototypeUserData();\r
200 //\r
201 //        // make sure that some prev test did not leave the user in the DB\r
202 //        ud.delete(trans, data);\r
203 //\r
204 //        // attempt to create same user twice !!!\r
205 //        \r
206 //        final Result<UserDAO.Data> data1 = ud.r_create(trans, data);\r
207 //        final Result<UserDAO.Data> data2 = ud.r_create(trans, data);\r
208 //\r
209 //        assertNotNull(data1);\r
210 //        assertNotNull(data2);\r
211 //\r
212 //        assertEquals(true,   Result.Status.OK == data1.status);\r
213 //        assertEquals(false,  Result.Status.OK == data2.status);\r
214 //    }\r
215 //\r
216 //    private void checkData1(UserDAO.Data data, UserDAO.Data d) {\r
217 //        data.name = CONST_myName;\r
218 //\r
219 //        data.cred_type = CONST_CRED_TYPE;\r
220 //        data.cred      = CONST_MY_CRED;\r
221 //        data.expires   = CONST_UPDATE_DATE;\r
222 //\r
223 //        assertEquals(data.name, d.name);\r
224 //        assertEquals(data.cred_type, d.cred_type);\r
225 //        assertEquals(data.cred, d.cred);\r
226 //        assertEquals(data.expires, d.expires);\r
227 //\r
228 //    }\r
229 //\r
230 //    private void checkDataIgnoreDateDiff(UserDAO.Data data, UserDAO.Data d) {\r
231 //        data.name = CONST_myName;\r
232 //\r
233 //        data.cred_type = CONST_CRED_TYPE;\r
234 //        data.cred      = CONST_MY_CRED;\r
235 //        data.expires   = CONST_UPDATE_DATE;\r
236 //\r
237 //        assertEquals(data.name, d.name);\r
238 //        assertEquals(data.cred_type, d.cred_type);\r
239 //        assertEquals(data.cred, d.cred);\r
240 //         // we allow dates to be different, e.g. high level calls e.g. createUser sets the date itself.\r
241 //        //assertEquals(data.updated, d.updated);\r
242 //\r
243 //    }\r
244 //\r
245 //    /**\r
246 //     * Get a CONST_MY_CRED ByteBuffer, which is the java type for a cass blob.\r
247 //     * @return\r
248 //     */\r
249 //    private static java.nio.ByteBuffer get_CONST_MY_CRED() {\r
250 //     return ByteBuffer.wrap("Hello".getBytes());\r
251 //    }\r
252 //\r
253 }\r