--- /dev/null
+/**
+ * ============LICENSE_START====================================================
+ * org.onap.aaf
+ * ===========================================================================
+ * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ * ===========================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END====================================================
+ *
+ */
+
+package com.att.dao.aaf.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.security.NoSuchAlgorithmException;
+import java.util.Date;
+import java.util.List;
+
+import org.junit.Test;
+import org.onap.aaf.auth.dao.CassAccess;
+import org.onap.aaf.auth.dao.cass.ArtiDAO;
+import org.onap.aaf.auth.dao.cass.ArtiDAO.Data;
+import org.onap.aaf.auth.layer.Result;
+
+/**
+ * UserDAO unit test.
+ * Date: 7/19/13
+ */
+public class JU_ArtiDAO extends AbsJUCass {
+ @Test
+ public void test() throws IOException, NoSuchAlgorithmException {
+ ArtiDAO adao = new ArtiDAO(trans,cluster,CassAccess.KEYSPACE);
+ try {
+ // TODO: Clean out AT&T specific data
+ // Create
+ ArtiDAO.Data data = new ArtiDAO.Data();
+ data.mechid="m553j5@perturbed.onap.org";
+ data.machine="perturbed1232.onap.org";
+ data.type(false).add("file");
+ data.type(false).add("jks");
+ data.sponsor="Fred Flintstone";
+ data.ca="devl";
+ data.dir="/opt/app/aft/keys";
+ data.ns="kumquat";
+ data.os_user="aft";
+ data.notify="email:fred@bogus.com";
+ data.expires=new Date();
+
+// Bytification
+ ByteBuffer bb = data.bytify();
+ Data bdata = new ArtiDAO.Data();
+ bdata.reconstitute(bb);
+ checkData1(data, bdata);
+
+
+// DB work
+ adao.create(trans,data);
+ try {
+ // Validate Read with key fields in Data
+ Result<List<ArtiDAO.Data>> rlcd = adao.read(trans,data);
+ assertTrue(rlcd.isOKhasData());
+ for(ArtiDAO.Data d : rlcd.value) {
+ checkData1(data,d);
+ }
+
+ // Validate Read with key fields in Data
+ rlcd = adao.read(trans,data.mechid, data.machine);
+ assertTrue(rlcd.isOKhasData());
+ for(ArtiDAO.Data d : rlcd.value) {
+ checkData1(data,d);
+ }
+
+ // By Machine
+ rlcd = adao.readByMachine(trans,data.machine);
+ assertTrue(rlcd.isOKhasData());
+ for(ArtiDAO.Data d : rlcd.value) {
+ checkData1(data,d);
+ }
+
+ // By MechID
+ rlcd = adao.readByMechID(trans,data.mechid);
+ assertTrue(rlcd.isOKhasData());
+ for(ArtiDAO.Data d : rlcd.value) {
+ checkData1(data,d);
+ }
+
+ // Update
+ data.sponsor = "Wilma Flintstone";
+ adao.update(trans,data);
+ rlcd = adao.read(trans,data);
+ assertTrue(rlcd.isOKhasData());
+ for(ArtiDAO.Data d : rlcd.value) {
+ checkData1(data,d);
+ }
+
+ } finally {
+ // Always delete data, even if failure.
+ adao.delete(trans,data, true);
+ }
+ } finally {
+ adao.close(trans);
+ }
+
+
+ }
+
+ private void checkData1(Data data, Data d) {
+ assertEquals(data.mechid,d.mechid);
+ assertEquals(data.machine,d.machine);
+ assertEquals(data.type(false).size(),d.type(false).size());
+ for(String s: data.type(false)) {
+ assertTrue(d.type(false).contains(s));
+ }
+ assertEquals(data.sponsor,d.sponsor);
+ assertEquals(data.ca,d.ca);
+ assertEquals(data.dir,d.dir);
+ assertEquals(data.ns,d.ns);
+ assertEquals(data.os_user,d.os_user);
+ assertEquals(data.notify,d.notify);
+ assertEquals(data.expires,d.expires);
+ }
+
+}