summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/hl/JU_Function.java886
1 files changed, 886 insertions, 0 deletions
diff --git a/auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/hl/JU_Function.java b/auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/hl/JU_Function.java
new file mode 100644
index 00000000..df370b7e
--- /dev/null
+++ b/auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/hl/JU_Function.java
@@ -0,0 +1,886 @@
+/*******************************************************************************
+ * ============LICENSE_START====================================================
+ * * org.onap.aaf
+ * * ===========================================================================
+ * * Copyright © 2017 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 org.onap.aaf.auth.dao.hl;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.GregorianCalendar;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.onap.aaf.auth.common.Define;
+import org.onap.aaf.auth.dao.cached.CachedCredDAO;
+import org.onap.aaf.auth.dao.cached.CachedNSDAO;
+import org.onap.aaf.auth.dao.cached.CachedPermDAO;
+import org.onap.aaf.auth.dao.cached.CachedRoleDAO;
+import org.onap.aaf.auth.dao.cached.CachedUserRoleDAO;
+import org.onap.aaf.auth.dao.cass.CredDAO;
+import org.onap.aaf.auth.dao.cass.Namespace;
+import org.onap.aaf.auth.dao.cass.NsDAO;
+import org.onap.aaf.auth.dao.cass.PermDAO;
+import org.onap.aaf.auth.dao.cass.RoleDAO;
+import org.onap.aaf.auth.dao.cass.Status;
+import org.onap.aaf.auth.dao.cass.UserRoleDAO;
+import org.onap.aaf.auth.dao.hl.Question.Access;
+import org.onap.aaf.auth.env.AuthzTrans;
+import org.onap.aaf.auth.env.AuthzTrans.REQD_TYPE;
+import org.onap.aaf.auth.layer.Result;
+import org.onap.aaf.auth.org.Organization;
+import org.onap.aaf.auth.org.Organization.Expiration;
+import org.onap.aaf.auth.org.Organization.Identity;
+import org.onap.aaf.auth.org.OrganizationException;
+import org.onap.aaf.cadi.CadiException;
+import org.onap.aaf.cadi.PropAccess;
+import org.onap.aaf.cadi.config.Config;
+import org.onap.aaf.misc.env.APIException;
+import org.onap.aaf.misc.env.LogTarget;
+
+import io.netty.util.internal.SystemPropertyUtil;
+
+public class JU_Function {
+
+ @Mock
+ AuthzTrans trans;
+ @Mock
+ PropAccess access;
+
+ @Mock
+ Question ques;
+
+ @Before
+ public void setUp() throws APIException, IOException {
+ initMocks(this);
+ }
+
+ @Test
+ public void testCreateNs() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ Namespace namespace = Mockito.mock(Namespace.class);
+ namespace.name = "test.test";
+ List<String> owner = new ArrayList<String>();
+ namespace.owner = owner;
+
+ Organization org = Mockito.mock(Organization.class);
+ Mockito.doReturn(org).when(trans).org();
+
+ NsDAO.Data data = new NsDAO.Data();
+ data.name="test";
+ Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",new String[0]);
+ Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
+
+ CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+ Result<Void> retVal = new Result<Void>(null,1,"test",new String[0]);
+ Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+ setQuestion(ques, nsDaoObj);
+
+ Function funcObj = new Function(trans, ques);
+ Result<Void> result = funcObj.createNS(trans, namespace, true);
+ assertTrue(3 == result.status);
+ }
+
+ @Test
+ public void testCreateNsReadSuccess() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ Namespace namespace = Mockito.mock(Namespace.class);
+ namespace.name = "test.test";
+ List<String> owner = new ArrayList<String>();
+ owner.add("test");
+ namespace.owner = owner;
+ List<String> admin = new ArrayList<String>();
+ admin.add("test");
+ namespace.admin= admin;
+
+ Organization org = Mockito.mock(Organization.class);
+ Mockito.doReturn(org).when(trans).org();
+
+ NsDAO.Data data = new NsDAO.Data();
+ data.name="test";
+ Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",new String[0]);
+ Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
+
+ CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+ Result<Void> retVal = new Result<Void>(null,1,"test",new String[0]);
+ Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+ setQuestion(ques, nsDaoObj);
+
+ Function funcObj = new Function(trans, ques);
+ Result<Void> result = funcObj.createNS(trans, namespace, true);
+ assertTrue(3 == result.status);
+ }
+
+ @Test
+ public void testCreateNsFromApprovaFalse() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ Namespace namespace = Mockito.mock(Namespace.class);
+ namespace.name = "test.test";
+ List<String> owner = new ArrayList<String>();
+ namespace.owner = owner;
+
+ Organization org = Mockito.mock(Organization.class);
+ Mockito.doReturn(org).when(trans).org();
+
+ NsDAO.Data data = new NsDAO.Data();
+ data.name="test";
+ Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",new String[0]);
+ Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
+ Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(data,1,"test",new String[0]);
+ Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal1.value, Access.write);
+
+ Function funcObj = new Function(trans, ques);
+ Result<Void> result = funcObj.createNS(trans, namespace, false);
+ assertTrue(1 == result.status);
+
+ Mockito.doReturn(retVal2).when(ques).deriveNs(trans, "test");
+ funcObj = new Function(trans, ques);
+ result = funcObj.createNS(trans, namespace, false);
+ assertTrue(1 == result.status);
+ }
+
+ @Test
+ public void testCreateNsownerLoop() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ Namespace namespace = Mockito.mock(Namespace.class);
+ namespace.name = "test.test";
+ List<String> owner = new ArrayList<String>();
+ owner.add("test");
+ namespace.owner = owner;
+
+ Organization org = Mockito.mock(Organization.class);
+ Mockito.doReturn(org).when(trans).org();
+ Mockito.doReturn(org).when(trans).org();
+
+ Function funcObj = new Function(trans, ques);
+ Result<Void> result = funcObj.createNS(trans, namespace, true);
+ assertTrue(result.status == Status.ERR_Policy);
+ assertTrue(result.details.contains("is not a valid user at"));
+
+ Identity iden=Mockito.mock(Identity.class);
+ try {
+ Mockito.doReturn(iden).when(org).getIdentity(trans, "test");
+ Mockito.doReturn("test").when(iden).mayOwn();
+ } catch (OrganizationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ result = funcObj.createNS(trans, namespace, true);
+ assertTrue(result.status == Status.ERR_Policy);
+ assertTrue(result.details.contains("is an invalid Identity"));
+
+ Mockito.doReturn(true).when(iden).isFound();
+ result = funcObj.createNS(trans, namespace, true);
+ assertTrue(result.status == Status.ERR_Policy);
+ assertTrue(result.details.contains("cannot be the owner of the namespace "));
+
+ Mockito.doReturn(true).when(org).isTestEnv();
+ try {
+ Mockito.doReturn("test").when(org).validate(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());
+ result = funcObj.createNS(trans, namespace, true);
+ assertTrue(result.status == Status.ERR_Policy);
+ assertTrue(result.details.contains("cannot be the owner of the namespace "));
+ } catch (OrganizationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void testCreateNsownerLoopException() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ Namespace namespace = Mockito.mock(Namespace.class);
+ namespace.name = "test";
+ List<String> owner = new ArrayList<String>();
+ owner.add("test");
+ namespace.owner = owner;
+
+ Organization org = Mockito.mock(Organization.class);
+ Mockito.doReturn(org).when(trans).org();
+
+ Function funcObj = new Function(trans, ques);
+
+ Identity iden=Mockito.mock(Identity.class);
+ try {
+ Mockito.doThrow(new OrganizationException()).when(org).getIdentity(trans, "test");
+ Mockito.doReturn("test").when(iden).mayOwn();
+ } catch (OrganizationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ NsDAO.Data data = new NsDAO.Data();
+ data.name="test";
+ Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,1,"test",new String[0]);
+ Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
+
+ Result<Void> result = funcObj.createNS(trans, namespace, true);
+ assertTrue(result.status == Status.ERR_Security);
+ assertTrue(result.details.contains("may not create Root Namespaces"));
+
+ Mockito.doReturn(true).when(ques).isGranted(Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
+ retVal1 = new Result<NsDAO.Data>(data,0,"test",new String[0]);
+ Mockito.doReturn(retVal1).when(ques).deriveNs(trans, null);
+
+ CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+ Result<Void> retVal = new Result<Void>(null,1,"test",new String[0]);
+ Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+ setQuestion(ques, nsDaoObj);
+
+ result = funcObj.createNS(trans, namespace, true);
+ assertTrue(24 == result.status);
+
+ }
+
+ public void setQuestion(Question ques, CachedNSDAO userRoleDaoObj) {
+ Field nsDaoField;
+ try {
+ nsDaoField = Question.class.getDeclaredField("nsDAO");
+
+ nsDaoField.setAccessible(true);
+ // remove final modifier from field
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
+
+ nsDaoField.set(ques, userRoleDaoObj);
+ } catch (NoSuchFieldException | SecurityException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ public void setQuestionCredDao(Question ques, CachedCredDAO credDaoObj) {
+ Field nsDaoField;
+ try {
+ nsDaoField = Question.class.getDeclaredField("credDAO");
+
+ nsDaoField.setAccessible(true);
+ // remove final modifier from field
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
+
+ nsDaoField.set(ques, credDaoObj);
+ } catch (NoSuchFieldException | SecurityException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ public void setQuestionUserRoleDao(Question ques, CachedUserRoleDAO credDaoObj) {
+ Field nsDaoField;
+ try {
+ nsDaoField = Question.class.getDeclaredField("userRoleDAO");
+
+ nsDaoField.setAccessible(true);
+ // remove final modifier from field
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
+
+ nsDaoField.set(ques, credDaoObj);
+ } catch (NoSuchFieldException | SecurityException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ public void setQuestionCachedRoleDao(Question ques, CachedRoleDAO credDaoObj) {
+ Field nsDaoField;
+ try {
+ nsDaoField = Question.class.getDeclaredField("roleDAO");
+
+ nsDaoField.setAccessible(true);
+ // remove final modifier from field
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
+
+ nsDaoField.set(ques, credDaoObj);
+ } catch (NoSuchFieldException | SecurityException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ public void setQuestionCachedPermDao(Question ques, CachedPermDAO credDaoObj) {
+ Field nsDaoField;
+ try {
+ nsDaoField = Question.class.getDeclaredField("permDAO");
+
+ nsDaoField.setAccessible(true);
+ // remove final modifier from field
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
+
+ nsDaoField.set(ques, credDaoObj);
+ } catch (NoSuchFieldException | SecurityException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ @Test
+ public void testCreateNsAdminLoop() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ Namespace namespace = Mockito.mock(Namespace.class);
+ namespace.name = "test.test";
+ List<String> owner = new ArrayList<String>();
+ owner.add("test");
+ namespace.owner = owner;
+ namespace.admin = owner;
+
+ Organization org = Mockito.mock(Organization.class);
+ Mockito.doReturn(org).when(trans).org();
+
+ NsDAO.Data data = new NsDAO.Data();
+ data.name="test";
+ Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",new String[0]);
+ Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
+
+ CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+ CachedCredDAO credDAO = Mockito.mock(CachedCredDAO.class);
+ Result<Void> retVal = new Result<Void>(null,1,"test",new String[0]);
+ Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+ Mockito.doReturn(retVal).when(nsDaoObj).create(Mockito.any(), Mockito.any());
+ List<CredDAO.Data> dataObj = new ArrayList<>();
+ CredDAO.Data indData = new CredDAO.Data();
+ indData.id = "test";
+ indData.notes = "test";
+ DateFormat sdf = new SimpleDateFormat("yyyy/mm/dd");
+ try {
+ indData.expires = sdf.parse("2090/01/01");
+ } catch (ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ dataObj.add(indData);
+ Result<List<CredDAO.Data>> retVal2 = new Result<List<CredDAO.Data>>(dataObj,0,"test",new String[0]);
+ Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());
+ setQuestion(ques, nsDaoObj);
+ setQuestionCredDao(ques, credDAO);
+
+ Identity iden=Mockito.mock(Identity.class);
+ try {
+ Mockito.doReturn(iden).when(org).getIdentity(trans, "test");
+ Mockito.doReturn("test").when(iden).mayOwn();
+ Mockito.doReturn(true).when(org).isTestEnv();
+ } catch (OrganizationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ Function funcObj = new Function(trans, ques);
+ Result<Void> result = funcObj.createNS(trans, namespace, true);
+ assertTrue(result.status == 1);
+
+ }
+
+ @Test
+ public void testCreateNsAdminLoopCreateSucReadChildrenFailure() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ Namespace namespace = Mockito.mock(Namespace.class);
+ namespace.name = "test.test";
+ List<String> owner = new ArrayList<String>();
+ owner.add("test");
+ namespace.owner = owner;
+ namespace.admin = owner;
+
+ Organization org = Mockito.mock(Organization.class);
+ Mockito.doReturn(org).when(trans).org();
+
+ NsDAO.Data data = new NsDAO.Data();
+ data.name="test";
+ Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",new String[0]);
+ Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
+
+ CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+ CachedCredDAO credDAO = Mockito.mock(CachedCredDAO.class);
+ CachedUserRoleDAO userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
+ CachedRoleDAO cachedRoleDAO = Mockito.mock(CachedRoleDAO.class);
+ CachedPermDAO cachedPermDAO = Mockito.mock(CachedPermDAO.class);
+ Result<Void> retVal = new Result<Void>(null,0,"test",new String[0]);
+ Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+ Mockito.doReturn(retVal).when(nsDaoObj).create(Mockito.any(), Mockito.any());
+ List<CredDAO.Data> dataObj = new ArrayList<>();
+ CredDAO.Data indData = new CredDAO.Data();
+ indData.id = "test";
+ indData.notes = "test";
+ DateFormat sdf = new SimpleDateFormat("yyyy/mm/dd");
+ try {
+ indData.expires = sdf.parse("2090/01/01");
+ } catch (ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ dataObj.add(indData);
+ List<RoleDAO.Data> dataObj1 = new ArrayList<>();
+ RoleDAO.Data indData1 = new RoleDAO.Data();
+ indData1.ns = "test";
+ indData1.name = "test";
+ Set<String> permsSet = new HashSet<>();
+ permsSet.add("test|test");
+ indData1.perms = permsSet;
+ dataObj1.add(indData1);
+
+ List<UserRoleDAO.Data> dataObj4 = new ArrayList<>();
+ UserRoleDAO.Data indData4 = new UserRoleDAO.Data();
+ indData4.ns = "test";
+ indData4.rname = "test";
+ dataObj4.add(indData4);
+
+ List<PermDAO.Data> dataObj5 = new ArrayList<>();
+ PermDAO.Data indData5 = new PermDAO.Data();
+ indData5.ns = "test";
+ indData5.type = "test";
+ dataObj5.add(indData5);
+
+ Result<List<CredDAO.Data>> retVal2 = new Result<List<CredDAO.Data>>(dataObj,0,"test",new String[0]);
+ Result<List<CredDAO.Data>> retVal6 = new Result<List<CredDAO.Data>>(dataObj,1,"test",new String[0]);
+ Result<List<RoleDAO.Data>> retVal3 = new Result<List<RoleDAO.Data>>(dataObj1,0,"test",new String[0]);
+ Result<List<UserRoleDAO.Data>> retVal4 = new Result<List<UserRoleDAO.Data>>(dataObj4,0,"test",new String[0]);
+ Result<List<PermDAO.Data>> retVal5 = new Result<List<PermDAO.Data>>(dataObj5,0,"test",new String[0]);
+ Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());
+ Mockito.doReturn(retVal4).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+ Mockito.doReturn(retVal2).when(userRoleDAO).create(Mockito.any(), Mockito.any());
+ Mockito.doReturn(retVal6).when(cachedRoleDAO).create(Mockito.any(), Mockito.any());
+ Mockito.doReturn(retVal6).when(cachedRoleDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
+ Mockito.doReturn(retVal2).when(cachedPermDAO).create(Mockito.any(), Mockito.any());
+ Mockito.doReturn(retVal5).when(cachedPermDAO).readChildren(trans, "test", "test");
+ Mockito.doReturn(retVal5).when(cachedPermDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
+ Mockito.doReturn(retVal3).when(cachedRoleDAO).readChildren(trans, "test", "test");
+ setQuestion(ques, nsDaoObj);
+ setQuestionCredDao(ques, credDAO);
+ setQuestionUserRoleDao(ques, userRoleDAO);
+ setQuestionCachedRoleDao(ques, cachedRoleDAO);
+ setQuestionCachedPermDao(ques, cachedPermDAO);
+
+ Identity iden=Mockito.mock(Identity.class);
+ try {
+ Mockito.doReturn(iden).when(org).getIdentity(trans, "test");
+ Mockito.doReturn("test").when(iden).mayOwn();
+ Mockito.doReturn(true).when(org).isTestEnv();
+ Mockito.doReturn(new GregorianCalendar(2010, 01, 01)).when(org).expiration(null, Expiration.UserInRole);
+ } catch (OrganizationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ Function funcObj = new Function(trans, ques);
+ Result<Void> result = funcObj.createNS(trans, namespace, true);
+ assertTrue(result.status == Status.ERR_ActionNotCompleted);
+
+ }
+
+ @Test
+ public void testCreateNsAdminLoopCreateSuc() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ Namespace namespace = Mockito.mock(Namespace.class);
+ namespace.name = "test.test";
+ List<String> owner = new ArrayList<String>();
+ owner.add("test");
+ namespace.owner = owner;
+ namespace.admin = owner;
+
+ Organization org = Mockito.mock(Organization.class);
+ Mockito.doReturn(org).when(trans).org();
+
+ NsDAO.Data data = new NsDAO.Data();
+ data.name="test";
+ Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",new String[0]);
+ Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
+
+ CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+ CachedCredDAO credDAO = Mockito.mock(CachedCredDAO.class);
+ CachedUserRoleDAO userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
+ CachedRoleDAO cachedRoleDAO = Mockito.mock(CachedRoleDAO.class);
+ CachedPermDAO cachedPermDAO = Mockito.mock(CachedPermDAO.class);
+ Result<Void> retVal = new Result<Void>(null,0,"test",new String[0]);
+ Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+ Mockito.doReturn(retVal).when(nsDaoObj).create(Mockito.any(), Mockito.any());
+ List<CredDAO.Data> dataObj = new ArrayList<>();
+ CredDAO.Data indData = new CredDAO.Data();
+ indData.id = "test";
+ indData.notes = "test";
+ DateFormat sdf = new SimpleDateFormat("yyyy/mm/dd");
+ try {
+ indData.expires = sdf.parse("2090/01/01");
+ } catch (ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ dataObj.add(indData);
+ List<RoleDAO.Data> dataObj1 = new ArrayList<>();
+ RoleDAO.Data indData1 = new RoleDAO.Data();
+ indData1.ns = "test";
+ indData1.name = "test";
+ Set<String> permsSet = new HashSet<>();
+ permsSet.add("test|test|test|test");
+ indData1.perms = permsSet;
+ dataObj1.add(indData1);
+
+ List<UserRoleDAO.Data> dataObj4 = new ArrayList<>();
+ UserRoleDAO.Data indData4 = new UserRoleDAO.Data();
+ indData4.ns = "test";
+ indData4.rname = "test";
+ dataObj4.add(indData4);
+
+ List<PermDAO.Data> dataObj5 = new ArrayList<>();
+ PermDAO.Data indData5 = new PermDAO.Data();
+ indData5.ns = "test";
+ indData5.type = "test";
+ Set<String> rolesSet = new HashSet<>();
+ rolesSet.add("test|test|test|test");
+ indData5.roles = rolesSet;
+ dataObj5.add(indData5);
+
+ Result<List<CredDAO.Data>> retVal2 = new Result<List<CredDAO.Data>>(dataObj,0,"test",new String[0]);
+ Result<List<RoleDAO.Data>> retVal3 = new Result<List<RoleDAO.Data>>(dataObj1,0,"test",new String[0]);
+ Result<List<UserRoleDAO.Data>> retVal4 = new Result<List<UserRoleDAO.Data>>(dataObj4,0,"test",new String[0]);
+ Result<List<PermDAO.Data>> retVal5 = new Result<List<PermDAO.Data>>(dataObj5,0,"test",new String[0]);
+ Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());
+ Mockito.doReturn(retVal4).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+ Mockito.doReturn(retVal2).when(userRoleDAO).create(Mockito.any(), Mockito.any());
+ Mockito.doReturn(retVal2).when(cachedRoleDAO).create(Mockito.any(), Mockito.any());
+ Mockito.doReturn(retVal2).when(cachedRoleDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
+ Mockito.doReturn(retVal2).when(cachedPermDAO).create(Mockito.any(), Mockito.any());
+ Mockito.doReturn(retVal5).when(cachedPermDAO).readChildren(trans, "test", "test");
+ Mockito.doReturn(retVal5).when(cachedPermDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
+ Mockito.doReturn(retVal3).when(cachedRoleDAO).readChildren(trans, "test", "test");
+ setQuestion(ques, nsDaoObj);
+ setQuestionCredDao(ques, credDAO);
+ setQuestionUserRoleDao(ques, userRoleDAO);
+ setQuestionCachedRoleDao(ques, cachedRoleDAO);
+ setQuestionCachedPermDao(ques, cachedPermDAO);
+
+ Identity iden=Mockito.mock(Identity.class);
+ try {
+ Mockito.doReturn(iden).when(org).getIdentity(trans, "test");
+ Mockito.doReturn("test").when(iden).mayOwn();
+ Mockito.doReturn(true).when(org).isTestEnv();
+ Mockito.doReturn(new GregorianCalendar(2010, 01, 01)).when(org).expiration(null, Expiration.UserInRole);
+ } catch (OrganizationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ Function funcObj = new Function(trans, ques);
+ Result<Void> result = funcObj.createNS(trans, namespace, true);
+ assertTrue(result.status == 0);
+
+ }
+
+ @Test
+ public void test4DeleteNs() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+ Result<Void> retVal = new Result<Void>(null,1,"test",new String[0]);
+ Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+ setQuestion(ques, nsDaoObj);
+
+ Function funcObj = new Function(trans, ques);
+ Result<Void> result = funcObj.deleteNS(trans, "test");
+
+ assertTrue(result.status == Status.ERR_NsNotFound);
+ }
+ @Test
+ public void test4DeleteCanMOveFail() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(true).when(trans).requested(REQD_TYPE.move);
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+ List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
+ NsDAO.Data dataObj = new NsDAO.Data();
+ dataObj.type=1;
+ dataAl.add(dataObj);
+ Result<List<NsDAO.Data>> retVal = new Result<List<NsDAO.Data>>(dataAl,0,"test",new String[0]);
+ Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+ setQuestion(ques, nsDaoObj);
+
+ Mockito.doReturn(false).when(ques).canMove(Mockito.any());
+
+ Function funcObj = new Function(trans, ques);
+ Result<Void> result = funcObj.deleteNS(trans, "test");
+ assertTrue(result.status == Status.ERR_Denied);
+
+ }
+ @Test
+ public void test4DeleteNsReadSuc() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+ Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+ Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+ try {
+ Define.set(access);
+ } catch (CadiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+ List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
+ NsDAO.Data dataObj = new NsDAO.Data();
+ dataObj.type=1;
+ dataAl.add(dataObj);
+ Result<List<NsDAO.Data>> retVal = new Result<List<NsDAO.Data>>(dataAl,0,"test",new String[0]);
+ Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+ setQuestion(ques, nsDaoObj);
+
+ Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,1,"test",new String[0]);
+ Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
+
+ Function funcObj = new Function(trans, ques);
+ Result<Void> result = funcObj.deleteNS(trans, "test");
+ assertTrue(result.status == 1);
+
+ }
+// @Test
+// public void test4DeleteNsMayUserSuc() {
+// Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+// Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+// Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+// Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+// try {
+// Define.set(access);
+// } catch (CadiException e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
+// CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+// List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
+// NsDAO.Data dataObj = new NsDAO.Data();
+// dataObj.type=1;
+// dataAl.add(dataObj);
+// Result<List<NsDAO.Data>> retVal = new Result<List<NsDAO.Data>>(dataAl,0,"test",new String[0]);
+// Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+// setQuestion(ques, nsDaoObj);
+//
+// Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,0,"test",new String[0]);
+// Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
+//
+// Function funcObj = new Function(trans, ques);
+// Result<Void> result = funcObj.deleteNS(trans, "test");
+// assertTrue(result.status == 1);
+//
+// Mockito.doReturn(true).when(ques).isGranted(Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
+//
+// CachedCredDAO credDAO = Mockito.mock(CachedCredDAO.class);
+// Mockito.doReturn(retVal2).when(credDAO).readNS(Mockito.any(), Mockito.anyString());
+// setQuestionCredDao(ques, credDAO);
+//
+// CachedPermDAO cachedPermDAO = Mockito.mock(CachedPermDAO.class);
+// Result<List<PermDAO.Data>> retVal5 = new Result<List<PermDAO.Data>>(null,0,"test",new String[0]);
+// Mockito.doReturn(retVal5).when(cachedPermDAO).readNS(trans, "test");
+// setQuestionCachedPermDao(ques, cachedPermDAO);
+//
+// CachedUserRoleDAO cachedUserRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
+// List<UserRoleDAO.Data> dataObj4 = new ArrayList<>();
+// UserRoleDAO.Data indData4 = new UserRoleDAO.Data();
+// indData4.ns = "test";
+// indData4.rname = "test";
+// dataObj4.add(indData4);
+// Result<List<UserRoleDAO.Data>> retVal4 = new Result<List<UserRoleDAO.Data>>(dataObj4,0,"test",new String[0]);
+// Mockito.doReturn(retVal4).when(cachedUserRoleDAO).readByRole(trans, "test");
+// setQuestionUserRoleDao(ques, cachedUserRoleDAO);
+//
+// CachedRoleDAO cachedRoleDAO = Mockito.mock(CachedRoleDAO.class);
+// List<RoleDAO.Data> dataObj1 = new ArrayList<>();
+// RoleDAO.Data indData1 = new RoleDAO.Data();
+// indData1.ns = "test";
+// indData1.name = "test";
+// Set<String> permsSet = new HashSet<>();
+// permsSet.add("test|test");
+// indData1.perms = permsSet;
+// dataObj1.add(indData1);
+// Result<List<RoleDAO.Data>> retVal3 = new Result<List<RoleDAO.Data>>(dataObj1,0,"test",new String[0]);
+// Mockito.doReturn(retVal3).when(cachedRoleDAO).readNS(trans, "test");
+// setQuestionCachedRoleDao(ques, cachedRoleDAO);
+//
+// funcObj = new Function(trans, ques);
+// result = funcObj.deleteNS(trans, "test");
+// assertTrue(result.status == Status.ERR_DependencyExists);
+//
+// Mockito.doReturn(true).when(trans).requested(REQD_TYPE.force);
+// funcObj = new Function(trans, ques);
+// result = funcObj.deleteNS(trans, "test");
+// assertTrue(result.status == 2);
+// }
+// @Test
+// public void test4DeleteNsMayUserSuc() {
+// Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+// Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
+// Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
+// Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
+// try {
+// Define.set(access);
+// } catch (CadiException e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
+// CachedNSDAO nsDaoObj = Mockito.mock(CachedNSDAO.class);
+// List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
+// NsDAO.Data dataObj = new NsDAO.Data();
+// dataObj.type=1;
+// dataAl.add(dataObj);
+// Result<List<NsDAO.Data>> retVal = new Result<List<NsDAO.Data>>(dataAl,0,"test",new String[0]);
+// Mockito.doReturn(retVal).when(nsDaoObj).read(Mockito.any(), Mockito.anyString());
+// setQuestion(ques, nsDaoObj);
+//
+// Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,0,"test",new String[0]);
+// Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
+//
+// Function funcObj = new Function(trans, ques);
+// Result<Void> result = funcObj.deleteNS(trans, "test");
+// assertTrue(result.status == 1);
+//
+// }
+}