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.assertTrue;
\r
28 import java.io.IOException;
\r
29 import java.nio.ByteBuffer;
\r
30 import java.security.NoSuchAlgorithmException;
\r
31 import java.util.Date;
\r
32 import java.util.List;
\r
34 import org.junit.Test;
\r
35 import org.onap.aaf.authz.layer.Result;
\r
36 import org.onap.aaf.dao.aaf.cass.CredDAO;
\r
37 import org.onap.aaf.dao.aaf.cass.CredDAO.Data;
\r
39 import org.onap.aaf.inno.env.APIException;
\r
42 * UserDAO unit test.
\r
46 public class JU_CredDAO extends AbsJUCass {
\r
48 public void test() throws IOException, NoSuchAlgorithmException, APIException {
\r
49 CredDAO udao = new CredDAO(trans,cluster,"authz");
\r
52 CredDAO.Data data = new CredDAO.Data();
\r
53 data.id = "m55555@aaf.att.com";
\r
54 data.type = CredDAO.BASIC_AUTH;
\r
55 data.notes = "temp pass";
\r
56 data.cred = ByteBuffer.wrap(userPassToBytes("m55555","mypass"));
\r
58 data.expires = new Date(System.currentTimeMillis() + 60000*60*24*90);
\r
59 udao.create(trans,data);
\r
62 ByteBuffer bb = data.bytify();
\r
63 Data bdata = new CredDAO.Data();
\r
64 bdata.reconstitute(bb);
\r
65 checkData1(data, bdata);
\r
67 // Validate Read with key fields in Data
\r
68 Result<List<CredDAO.Data>> rlcd = udao.read(trans,data);
\r
69 assertTrue(rlcd.isOKhasData());
\r
70 for(CredDAO.Data d : rlcd.value) {
\r
75 data.cred = ByteBuffer.wrap(userPassToBytes("m55555","mynewpass"));
\r
76 udao.update(trans,data);
\r
77 rlcd = udao.read(trans,data);
\r
78 assertTrue(rlcd.isOKhasData());
\r
79 for(CredDAO.Data d : rlcd.value) {
\r
83 udao.delete(trans,data, true);
\r
91 private void checkData1(Data data, Data d) {
\r
92 assertEquals(data.id,d.id);
\r
93 assertEquals(data.type,d.type);
\r
94 assertEquals(data.ns,d.ns);
\r
95 assertEquals(data.notes,d.notes);
\r
96 assertEquals(data.cred,d.cred);
\r
97 assertEquals(data.other,d.other);
\r
98 assertEquals(data.expires,d.expires);
\r
101 // private String CONST_myName = "MyName";
\r
102 // public static final java.nio.ByteBuffer CONST_MY_CRED = get_CONST_MY_CRED();
\r
103 // public static final int CONST_CRED_TYPE = 11;
\r
105 // public static final Date CONST_UPDATE_DATE = new Date(System.currentTimeMillis()+60000*24);
\r
107 // public void test() {
\r
108 // UserDAO ud = new UserDAO(trans, cluster,"authz");
\r
110 // UserDAO.Data data = createPrototypeUserData();
\r
111 // ud.create(trans, data);
\r
113 // // Validate Read with key fields in Data
\r
114 // for(UserDAO.Data d : ud.read(trans, data)) {
\r
115 // checkData1(data,d);
\r
118 // // Validate readByName
\r
119 // for(UserDAO.Data d : ud.read(trans, CONST_myName)) {
\r
120 // checkData1(data,d);
\r
123 // ud.delete(trans, data);
\r
124 // List<UserDAO.Data> d_2 = ud.read(trans, CONST_myName);
\r
126 // // Validate that data was deleted
\r
127 // assertEquals("User should not be found after deleted", 0, d_2.size() );
\r
129 // data = new UserDAO.Data();
\r
130 // data.name = CONST_myName;
\r
131 // data.cred = CONST_MY_CRED;
\r
132 // data.cred_type= CONST_CRED_TYPE;
\r
133 // data.expires = new Date(System.currentTimeMillis()+60000*24);
\r
134 // final Result<UserDAO.Data> user = ud.r_create(trans, data);
\r
135 // assertEquals("ud.createUser should work", Result.Status.OK, user.status);
\r
137 // checkDataIgnoreDateDiff(data, user.value);
\r
139 // // finally leave system in consistent state by deleting user again
\r
140 // ud.delete(trans,data);
\r
142 // } catch (DAOException e) {
\r
143 // e.printStackTrace();
\r
144 // fail("Fail due to Exception");
\r
146 // ud.close(trans);
\r
150 // private UserDAO.Data createPrototypeUserData() {
\r
151 // UserDAO.Data data = new UserDAO.Data();
\r
152 // data.name = CONST_myName;
\r
154 // data.cred_type = CONST_CRED_TYPE;
\r
155 // data.cred = CONST_MY_CRED;
\r
156 // data.expires = CONST_UPDATE_DATE;
\r
161 // // public void testReadByUser() throws Exception {
\r
162 // // // this test was done above in our super test, since it uses the same setup
\r
166 // public void testFunctionCreateUser() throws Exception {
\r
167 // String name = "roger_rabbit";
\r
168 // Integer credType = CONST_CRED_TYPE;
\r
169 // java.nio.ByteBuffer cred = CONST_MY_CRED;
\r
170 // final UserDAO ud = new UserDAO(trans, cluster,"authz");
\r
171 // final UserDAO.Data data = createPrototypeUserData();
\r
172 // Result<UserDAO.Data> ret = ud.r_create(trans, data);
\r
173 // Result<List<Data>> byUserNameLookup = ud.r_read(trans, name);
\r
175 // assertEquals("sanity test w/ different username (different than other test cases) failed", name, byUserNameLookup.value.get(0).name);
\r
176 // assertEquals("delete roger_rabbit failed", true, ud.delete(trans, byUserNameLookup.value.get(0)));
\r
180 // public void testLowLevelCassandraCreateData_Given_UserAlreadyPresent_ShouldPass() throws Exception {
\r
181 // UserDAO ud = new UserDAO(trans, cluster,"authz");
\r
183 // final UserDAO.Data data = createPrototypeUserData();
\r
184 // final UserDAO.Data data1 = ud.create(trans, data);
\r
185 // final UserDAO.Data data2 = ud.create(trans, data);
\r
187 // assertNotNull(data1);
\r
188 // assertNotNull(data2);
\r
190 // assertEquals(CONST_myName, data1.name);
\r
191 // assertEquals(CONST_myName, data2.name);
\r
195 // public void testCreateUser_Given_UserAlreadyPresent_ShouldFail() throws Exception {
\r
196 // UserDAO ud = new UserDAO(trans, cluster,"authz");
\r
198 // final UserDAO.Data data = createPrototypeUserData();
\r
200 // // make sure that some prev test did not leave the user in the DB
\r
201 // ud.delete(trans, data);
\r
203 // // attempt to create same user twice !!!
\r
205 // final Result<UserDAO.Data> data1 = ud.r_create(trans, data);
\r
206 // final Result<UserDAO.Data> data2 = ud.r_create(trans, data);
\r
208 // assertNotNull(data1);
\r
209 // assertNotNull(data2);
\r
211 // assertEquals(true, Result.Status.OK == data1.status);
\r
212 // assertEquals(false, Result.Status.OK == data2.status);
\r
215 // private void checkData1(UserDAO.Data data, UserDAO.Data d) {
\r
216 // data.name = CONST_myName;
\r
218 // data.cred_type = CONST_CRED_TYPE;
\r
219 // data.cred = CONST_MY_CRED;
\r
220 // data.expires = CONST_UPDATE_DATE;
\r
222 // assertEquals(data.name, d.name);
\r
223 // assertEquals(data.cred_type, d.cred_type);
\r
224 // assertEquals(data.cred, d.cred);
\r
225 // assertEquals(data.expires, d.expires);
\r
229 // private void checkDataIgnoreDateDiff(UserDAO.Data data, UserDAO.Data d) {
\r
230 // data.name = CONST_myName;
\r
232 // data.cred_type = CONST_CRED_TYPE;
\r
233 // data.cred = CONST_MY_CRED;
\r
234 // data.expires = CONST_UPDATE_DATE;
\r
236 // assertEquals(data.name, d.name);
\r
237 // assertEquals(data.cred_type, d.cred_type);
\r
238 // assertEquals(data.cred, d.cred);
\r
239 // // we allow dates to be different, e.g. high level calls e.g. createUser sets the date itself.
\r
240 // //assertEquals(data.updated, d.updated);
\r
245 // * Get a CONST_MY_CRED ByteBuffer, which is the java type for a cass blob.
\r
248 // private static java.nio.ByteBuffer get_CONST_MY_CRED() {
\r
249 // return ByteBuffer.wrap("Hello".getBytes());
\r