X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-cass%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fdao%2Fcass%2FJU_RoleDAO.java;h=f91fac44c0e487ccac011a5c3bd8558140057a08;hb=6dd9704640eb8cc8d6b4ccd266e40a3f6f589e75;hp=1f383469ad5a0cc338d41813d69fc4fffd9b96d0;hpb=1876581ffb0b9c83021bd422826c76fa8b125bf0;p=aaf%2Fauthz.git diff --git a/auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_RoleDAO.java b/auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_RoleDAO.java index 1f383469..f91fac44 100644 --- a/auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_RoleDAO.java +++ b/auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_RoleDAO.java @@ -7,9 +7,9 @@ * 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. @@ -24,11 +24,10 @@ package org.onap.aaf.auth.dao.cass; import static org.junit.Assert.assertTrue; import static org.mockito.MockitoAnnotations.initMocks; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; import java.io.IOException; import java.lang.reflect.Constructor; import java.lang.reflect.Field; @@ -65,603 +64,602 @@ import com.datastax.driver.core.Session; public class JU_RoleDAO { - @Mock + @Mock AuthzTrans trans; - @Mock - Cluster cluster; - @Mock - Session session; - - @Before - public void setUp() throws APIException, IOException { - initMocks(this); - Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).warn(); - Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error(); - Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug(); - Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).info(); - Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).init(); - Mockito.doReturn("100").when(trans).getProperty(Config.CADI_LATITUDE); - Mockito.doReturn("100").when(trans).getProperty(Config.CADI_LONGITUDE); - Mockito.doReturn(session).when(cluster).connect("test"); - } - - @Test - public void testInit() { - TimeTaken tt = Mockito.mock(TimeTaken.class); - Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); - Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); - Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); - Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); - try { - new RoleDAO(trans, cluster, "test"); - } catch (APIException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } -// daoObj. - } - @Test - public void testReadByStartAndTarget() { - TimeTaken tt = Mockito.mock(TimeTaken.class); - Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); - Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); - Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); - Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); - RoleDAO daoObj = null; - try { - daoObj = new RoleDAO(trans, cluster, "test"); - } catch (APIException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - PSInfo psObj = Mockito.mock(PSInfo.class); - setPsByStartAndTarget(daoObj, psObj, "psName"); - - Result> rs1 = new Result>(null,0,"test",new Object[0]); - Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAO READ", new Object[]{"test"}); - - daoObj.readName(trans, "test"); - } - @Test - public void testReadChildren() { - TimeTaken tt = Mockito.mock(TimeTaken.class); - Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); - Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); - Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); - Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); - RoleDAO daoObj = null; - try { - daoObj = new RoleDAO(trans, cluster, "test"); - } catch (APIException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - PSInfo psObj = Mockito.mock(PSInfo.class); - setPsByStartAndTarget(daoObj, psObj, "psChildren"); - - Result> rs1 = new Result>(null,0,"test",new Object[0]); - Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAO READ", new Object[]{"test"}); - - daoObj.readChildren(trans, "test", "test"); - - daoObj.readChildren(trans, "test", "*"); - daoObj.readChildren(trans, "test", ""); - } - @Test - public void testReadNs() { - TimeTaken tt = Mockito.mock(TimeTaken.class); - Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); - Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); - Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); - Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); - RoleDAO daoObj = null; - try { - daoObj = new RoleDAO(trans, cluster, "test"); - } catch (APIException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - PSInfo psObj = Mockito.mock(PSInfo.class); - setPsByStartAndTarget(daoObj, psObj, "psNS"); - - Result> rs1 = new Result>(null,0,"test",new Object[0]); - Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAO READ", new Object[]{"test"}); - - daoObj.readNS(trans, "test"); - } - @Test - public void testAddRole() { - PSInfo psObj = Mockito.mock(PSInfo.class); - HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class); - RoleDAO.Data data = new RoleDAO.Data(); - CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class); - RoleDAOImpl daoObj=null; - try { - daoObj = new RoleDAOImpl(trans, historyDAO, cacheInfoDAO, psObj, Mockito.mock(Session.class)); - } catch (APIException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - TimeTaken tt = Mockito.mock(TimeTaken.class); - Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); - Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); - Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); - Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); - - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100"); - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042"); - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100"); - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,null); - - Result> rs1 = new Result>(null,0,"test",new Object[0]); - Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl CREATE", data); - Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl UPDATE", data); - Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAOImpl READ", data); - Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl DELETE", data); - Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any()); - - Result rs2 = new Result(null,0,"test",new Object[0]); - Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg()); - - rs1 = new Result>(null,1,"test",new Object[0]); - Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt()); - Mockito.doReturn("test user").when(trans).user(); - Field cbField; - try { - cbField = CassAccess.class.getDeclaredField("cb"); - cbField.setAccessible(true); - cbField.set(daoObj, null); - } 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(); - } - - PermDAO.Data perm = new PermDAO.Data(); - RoleDAO.Data role = new RoleDAO.Data(); - Result retVal = daoObj.addPerm(trans, role, perm); - assertTrue(retVal.status == 9); - - Field owningField; - try { - owningField = AbsCassDAO.class.getDeclaredField("owningDAO"); - owningField.setAccessible(true); - owningField.set(daoObj, null); - } 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(); - } - retVal = daoObj.addPerm(trans, role, perm); - assertTrue(retVal.status == 0); - } - - @Test - public void testDelRole() { - PSInfo psObj = Mockito.mock(PSInfo.class); - HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class); - RoleDAO.Data data = new RoleDAO.Data(); - CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class); - RoleDAOImpl daoObj=null; - try { - daoObj = new RoleDAOImpl(trans, historyDAO, cacheInfoDAO, psObj, Mockito.mock(Session.class)); - } catch (APIException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - TimeTaken tt = Mockito.mock(TimeTaken.class); - Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); - Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); - Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); - Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); - - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100"); - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042"); - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100"); - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,null); - - Result> rs1 = new Result>(null,0,"test",new Object[0]); - Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl CREATE", data); - Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl UPDATE", data); - Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAOImpl READ", data); - Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl DELETE", data); - Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any()); - - Result rs2 = new Result(null,0,"test",new String[0]); - Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg()); - - rs1 = new Result>(null,1,"test",new String[0]); - Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt()); - Mockito.doReturn("test user").when(trans).user(); - - PermDAO.Data perm = new PermDAO.Data(); - Field cbField; - try { - cbField = CassAccess.class.getDeclaredField("cb"); - cbField.setAccessible(true); - cbField.set(daoObj, null); - } 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(); - } - RoleDAO.Data role = new RoleDAO.Data(); - Result retVal = daoObj.delPerm(trans, role, perm); - assertTrue(retVal.status == 9); - - Field owningDaoField; - try { - owningDaoField = AbsCassDAO.class.getDeclaredField("owningDAO"); - owningDaoField.setAccessible(true); - owningDaoField.set(daoObj, null); - } 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(); - } - retVal = daoObj.delPerm(trans,role, perm); - assertTrue(retVal.status == 0); - } - - @Test - public void testAddDescription() { - PSInfo psObj = Mockito.mock(PSInfo.class); - HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class); - RoleDAO.Data data = new RoleDAO.Data(); - CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class); - RoleDAOImpl daoObj=null; - try { - daoObj = new RoleDAOImpl(trans, historyDAO, cacheInfoDAO, psObj, Mockito.mock(Session.class)); - } catch (APIException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - TimeTaken tt = Mockito.mock(TimeTaken.class); - Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); - Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); - Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); - Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); - - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100"); - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042"); - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100"); - Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,null); - - Result> rs1 = new Result>(null,0,"test",new String[0]); - Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl CREATE", data); - Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl UPDATE", data); - Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAOImpl READ", data); - Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl DELETE", data); - Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any()); - - Result rs2 = new Result(null,1,"test",new String[0]); - Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg()); - - rs1 = new Result>(null,1,"test",new String[0]); - Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt()); - Mockito.doReturn("test user").when(trans).user(); - - RoleDAO.Data perm = new RoleDAO.Data(); - Field cbField; - try { - cbField = CassAccess.class.getDeclaredField("cb"); - cbField.setAccessible(true); - cbField.set(daoObj, null); - } 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(); - } - - Result retVal = daoObj.addDescription(trans, "test", "test", "test"); - assertTrue(retVal.status == 9); - - Field owningDaoField; - try { - owningDaoField = AbsCassDAO.class.getDeclaredField("owningDAO"); - owningDaoField.setAccessible(true); - owningDaoField.set(daoObj, null); - } 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(); - } - retVal = daoObj.addDescription(trans, "test", "test", "test"); - assertTrue(retVal.status == 0); - } - - public void setPsByStartAndTarget(RoleDAO RoleDAOObj, PSInfo psInfoObj, String fieldName) { - Field RoleDAOField; - try { - RoleDAOField = RoleDAO.class.getDeclaredField(fieldName); - - RoleDAOField.setAccessible(true); - // remove final modifier from field - Field modifiersField = Field.class.getDeclaredField("modifiers"); - modifiersField.setAccessible(true); -// modifiersField.setInt(RoleDAOField, RoleDAOField.getModifiers() & ~Modifier.FINAL); - - RoleDAOField.set(RoleDAOObj, psInfoObj); - } 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 testWasMOdified() { - TimeTaken tt = Mockito.mock(TimeTaken.class); - Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); - Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); - Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); - Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); - Mockito.doReturn(tt).when(trans).start("DELETE Future",Env.REMOTE); - Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error(); - Mockito.doNothing().when(tt).done(); - RoleDAO.Data data = new RoleDAO.Data(); - PSInfo createPS = Mockito.mock(PSInfo.class); - - HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class); - Result rs1 = new Result(null,0,"test",new String[0]); - Result rs2 = new Result(null,0,"test",new String[0]); - Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any()); - - CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class); - Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg()); - - RoleDAOImpl daoObj = null; - try { - daoObj = new RoleDAOImpl(trans, historyDAO, cacheInfoDAO, createPS ); - } catch (APIException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"}); - - daoObj.wasModified(trans, CRUD.create, data, new String[] {}); - daoObj.wasModified(trans, CRUD.create, data, new String[] {null}); - daoObj.wasModified(trans, CRUD.create, data, new String[] {"test",null}); - daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"}); - - rs1 = new Result(null,1,"test",new String[0]); - Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any()); - daoObj.wasModified(trans, CRUD.delete, data, new String[] {"test","test"}); - } - - @Test - public void testSecondConstructor() { - HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class); - CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class); - - RoleDAO daoObj = new RoleDAO(trans, historyDAO, cacheInfoDAO); - - } - - @Test - public void testFutureLoader(){ - Class innerClass = null; - Class[] innerClassArr = RoleDAO.class.getDeclaredClasses(); - for(Class indCls:innerClassArr) { - if(indCls.getName().contains("RoleLoader")) { - innerClass = indCls; - break; - } - } - + @Mock + Cluster cluster; + @Mock + Session session; + + @Before + public void setUp() throws APIException, IOException { + initMocks(this); + Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).warn(); + Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error(); + Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug(); + Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).info(); + Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).init(); + Mockito.doReturn("100").when(trans).getProperty(Config.CADI_LATITUDE); + Mockito.doReturn("100").when(trans).getProperty(Config.CADI_LONGITUDE); + Mockito.doReturn(session).when(cluster).connect("test"); + } + + @Test + public void testInit() { + TimeTaken tt = Mockito.mock(TimeTaken.class); + Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); + Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); + Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); + Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); + try { + new RoleDAO(trans, cluster, "test"); + } catch (APIException | IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } +// daoObj. + } + @Test + public void testReadByStartAndTarget() { + TimeTaken tt = Mockito.mock(TimeTaken.class); + Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); + Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); + Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); + Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); + RoleDAO daoObj = null; + try { + daoObj = new RoleDAO(trans, cluster, "test"); + } catch (APIException | IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + PSInfo psObj = Mockito.mock(PSInfo.class); + setPsByStartAndTarget(daoObj, psObj, "psName"); + + Result> rs1 = new Result>(null,0,"test",new Object[0]); + Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAO READ", new Object[]{"test"}); + + daoObj.readName(trans, "test"); + } + @Test + public void testReadChildren() { + TimeTaken tt = Mockito.mock(TimeTaken.class); + Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); + Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); + Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); + Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); + RoleDAO daoObj = null; + try { + daoObj = new RoleDAO(trans, cluster, "test"); + } catch (APIException | IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + PSInfo psObj = Mockito.mock(PSInfo.class); + setPsByStartAndTarget(daoObj, psObj, "psChildren"); + + Result> rs1 = new Result>(null,0,"test",new Object[0]); + Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAO READ", new Object[]{"test"}); + + daoObj.readChildren(trans, "test", "test"); + + daoObj.readChildren(trans, "test", "*"); + daoObj.readChildren(trans, "test", ""); + } + @Test + public void testReadNs() { + TimeTaken tt = Mockito.mock(TimeTaken.class); + Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); + Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); + Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); + Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); + RoleDAO daoObj = null; + try { + daoObj = new RoleDAO(trans, cluster, "test"); + } catch (APIException | IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + PSInfo psObj = Mockito.mock(PSInfo.class); + setPsByStartAndTarget(daoObj, psObj, "psNS"); + + Result> rs1 = new Result>(null,0,"test",new Object[0]); + Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAO READ", new Object[]{"test"}); + + daoObj.readNS(trans, "test"); + } + @Test + public void testAddRole() { + PSInfo psObj = Mockito.mock(PSInfo.class); + HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class); + RoleDAO.Data data = new RoleDAO.Data(); + CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class); + RoleDAOImpl daoObj=null; + try { + daoObj = new RoleDAOImpl(trans, historyDAO, cacheInfoDAO, psObj, Mockito.mock(Session.class)); + } catch (APIException | IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + TimeTaken tt = Mockito.mock(TimeTaken.class); + Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); + Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); + Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); + Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); + + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100"); + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042"); + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100"); + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,null); + + Result> rs1 = new Result>(null,0,"test",new Object[0]); + Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl CREATE", data); + Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl UPDATE", data); + Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAOImpl READ", data); + Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl DELETE", data); + Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any()); + + Result rs2 = new Result(null,0,"test",new Object[0]); + Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg()); + + rs1 = new Result>(null,1,"test",new Object[0]); + Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt()); + Mockito.doReturn("test user").when(trans).user(); + Field cbField; + try { + cbField = CassAccess.class.getDeclaredField("cb"); + cbField.setAccessible(true); + cbField.set(daoObj, null); + } 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(); + } + + PermDAO.Data perm = new PermDAO.Data(); + RoleDAO.Data role = new RoleDAO.Data(); + Result retVal = daoObj.addPerm(trans, role, perm); + assertTrue(retVal.status == 9); + + Field owningField; + try { + owningField = AbsCassDAO.class.getDeclaredField("owningDAO"); + owningField.setAccessible(true); + owningField.set(daoObj, null); + } 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(); + } + retVal = daoObj.addPerm(trans, role, perm); + assertTrue(retVal.status == 0); + } + + @Test + public void testDelRole() { + PSInfo psObj = Mockito.mock(PSInfo.class); + HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class); + RoleDAO.Data data = new RoleDAO.Data(); + CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class); + RoleDAOImpl daoObj=null; + try { + daoObj = new RoleDAOImpl(trans, historyDAO, cacheInfoDAO, psObj, Mockito.mock(Session.class)); + } catch (APIException | IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + TimeTaken tt = Mockito.mock(TimeTaken.class); + Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); + Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); + Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); + Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); + + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100"); + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042"); + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100"); + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,null); + + Result> rs1 = new Result>(null,0,"test",new Object[0]); + Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl CREATE", data); + Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl UPDATE", data); + Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAOImpl READ", data); + Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl DELETE", data); + Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any()); + + Result rs2 = new Result(null,0,"test",new String[0]); + Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg()); + + rs1 = new Result>(null,1,"test",new String[0]); + Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt()); + Mockito.doReturn("test user").when(trans).user(); + + PermDAO.Data perm = new PermDAO.Data(); + Field cbField; + try { + cbField = CassAccess.class.getDeclaredField("cb"); + cbField.setAccessible(true); + cbField.set(daoObj, null); + } 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(); + } + RoleDAO.Data role = new RoleDAO.Data(); + Result retVal = daoObj.delPerm(trans, role, perm); + assertTrue(retVal.status == 9); + + Field owningDaoField; + try { + owningDaoField = AbsCassDAO.class.getDeclaredField("owningDAO"); + owningDaoField.setAccessible(true); + owningDaoField.set(daoObj, null); + } 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(); + } + retVal = daoObj.delPerm(trans,role, perm); + assertTrue(retVal.status == 0); + } + + @Test + public void testAddDescription() { + PSInfo psObj = Mockito.mock(PSInfo.class); + HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class); + RoleDAO.Data data = new RoleDAO.Data(); + CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class); + RoleDAOImpl daoObj=null; + try { + daoObj = new RoleDAOImpl(trans, historyDAO, cacheInfoDAO, psObj, Mockito.mock(Session.class)); + } catch (APIException | IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + TimeTaken tt = Mockito.mock(TimeTaken.class); + Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); + Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); + Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); + Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); + + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100"); + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042"); + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100"); + Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,null); + + Result> rs1 = new Result>(null,0,"test",new String[0]); + Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl CREATE", data); + Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl UPDATE", data); + Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAOImpl READ", data); + Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl DELETE", data); + Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any()); + + Result rs2 = new Result(null,1,"test",new String[0]); + Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg()); + + rs1 = new Result>(null,1,"test",new String[0]); + Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt()); + Mockito.doReturn("test user").when(trans).user(); + + RoleDAO.Data perm = new RoleDAO.Data(); + Field cbField; + try { + cbField = CassAccess.class.getDeclaredField("cb"); + cbField.setAccessible(true); + cbField.set(daoObj, null); + } 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(); + } + + Result retVal = daoObj.addDescription(trans, "test", "test", "test"); + assertTrue(retVal.status == 9); + + Field owningDaoField; + try { + owningDaoField = AbsCassDAO.class.getDeclaredField("owningDAO"); + owningDaoField.setAccessible(true); + owningDaoField.set(daoObj, null); + } 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(); + } + retVal = daoObj.addDescription(trans, "test", "test", "test"); + assertTrue(retVal.status == 0); + } + + public void setPsByStartAndTarget(RoleDAO RoleDAOObj, PSInfo psInfoObj, String fieldName) { + Field RoleDAOField; + try { + RoleDAOField = RoleDAO.class.getDeclaredField(fieldName); + + RoleDAOField.setAccessible(true); + // remove final modifier from field + Field modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); +// modifiersField.setInt(RoleDAOField, RoleDAOField.getModifiers() & ~Modifier.FINAL); + + RoleDAOField.set(RoleDAOObj, psInfoObj); + } 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 testWasModified() { + TimeTaken tt = Mockito.mock(TimeTaken.class); + Mockito.doReturn(tt).when(trans).start("RoleDAO CREATE", Env.REMOTE); + Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB); + Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB); + Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB); + Mockito.doReturn(tt).when(trans).start("DELETE Future",Env.REMOTE); + Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error(); + Mockito.doNothing().when(tt).done(); + RoleDAO.Data data = new RoleDAO.Data(); + PSInfo createPS = Mockito.mock(PSInfo.class); + + HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class); + Result rs1 = new Result(null,0,"test",new String[0]); + Result rs2 = new Result(null,0,"test",new String[0]); + Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any()); + + CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class); + Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg()); + + RoleDAOImpl daoObj = null; + try { + daoObj = new RoleDAOImpl(trans, historyDAO, cacheInfoDAO, createPS ); + } catch (APIException | IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"}); + + daoObj.wasModified(trans, CRUD.create, data, new String[] {}); + daoObj.wasModified(trans, CRUD.create, data, new String[] {null}); + daoObj.wasModified(trans, CRUD.create, data, new String[] {"test",null}); + daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"}); + + rs1 = new Result(null,1,"test",new String[0]); + Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any()); + daoObj.wasModified(trans, CRUD.delete, data, new String[] {"test","test"}); + } + + @Test + public void testSecondConstructor() { + HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class); + CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class); + + RoleDAO daoObj = new RoleDAO(trans, historyDAO, cacheInfoDAO); + + } + + @Test + public void testFutureLoader(){ + Class innerClass = null; + Class[] innerClassArr = RoleDAO.class.getDeclaredClasses(); + for(Class indCls:innerClassArr) { + if(indCls.getName().contains("RoleLoader")) { + innerClass = indCls; + break; + } + } + Constructor constructor = innerClass.getDeclaredConstructors()[0]; constructor.setAccessible(true); - + try { - - Object obj = constructor.newInstance(1); - Method innnerClassMtd; - - RoleDAO.Data data = new RoleDAO.Data(); - Row row = Mockito.mock(Row.class); - ByteBuffer bbObj = ByteBuffer.allocateDirect(10); - bbObj.limit(7); - bbObj.put(0, new Byte("0")); - bbObj.put(1, new Byte("1")); - bbObj.put(2, new Byte("2")); - Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1); - - innnerClassMtd = innerClass.getMethod("load", new Class[] {RoleDAO.Data.class, Row.class}); - innnerClassMtd.invoke(obj, new Object[] {data, row}); - - innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {RoleDAO.Data.class, Integer.TYPE, Object[].class }); - innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test"} }); -// - innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {RoleDAO.Data.class, Integer.TYPE, Object[].class }); - innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} }); - - DataOutputStream dos = new DataOutputStream(new FileOutputStream("JU_RoleDAOTest.java")); - innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {RoleDAO.Data.class, DataOutputStream.class }); - innnerClassMtd.invoke(obj, new Object[] {data, dos }); - - DataInputStream dis = new DataInputStream(new FileInputStream("JU_RoleDAOTest.java")); - innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {RoleDAO.Data.class, DataInputStream.class }); - innnerClassMtd.invoke(obj, new Object[] {data, dis }); - - } catch (InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (NoSuchMethodException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - @Test - public void testData() { - RoleDAO.Data data = new RoleDAO.Data(); - NsSplit nss = new NsSplit("test", "test"); - data = new RoleDAO.Data(); - - data.toString(); - - - Question q = Mockito.mock( Question.class); - - Result rs = new Result(nss,0,"test",new Object[0]); - Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test"); - Result retVal= RoleDAO.Data.decode(trans, q, "test|||"); - assertTrue(retVal.status==0); - Result retVal1= RoleDAO.Data.decodeToArray(trans, q, "test|||"); - assertTrue(retVal.status==0); - retVal= RoleDAO.Data.decode(trans, q, "test"); - retVal1= RoleDAO.Data.decodeToArray(trans, q, "test"); - assertTrue(retVal.status==0); - - rs = new Result(nss,1,"test",new Object[0]); - Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test"); - retVal= RoleDAO.Data.decode(trans, q, "test"); - retVal1= RoleDAO.Data.decodeToArray(trans, q, "test"); - assertTrue(retVal.status==1); - - retVal= RoleDAO.Data.decode(trans, q, "test"); - retVal1= RoleDAO.Data.decodeToArray(trans, q, "test"); - assertTrue(retVal.status==1); - - NsDAO.Data ns = new NsDAO.Data(); - ns.name="test"; - RoleDAO.Data.create(ns, "test"); - - UserRoleDAO.Data urdd = new UserRoleDAO.Data(); - urdd.ns="test"; - RoleDAO.Data dd=RoleDAO.Data.decode(urdd); - assertTrue("test".equals(dd.ns)); - - assertTrue(data.encode().contains("null")); - - data.perms = null; - data.perms(true); - - data.perms = new HashSet<>(); - data.perms(true); - - data.perms(false); - data.perms = new TreeSet<>(); - data.perms(true); - } - + + Object obj = constructor.newInstance(1); + Method innnerClassMtd; + + RoleDAO.Data data = new RoleDAO.Data(); + Row row = Mockito.mock(Row.class); + ByteBuffer bbObj = ByteBuffer.allocateDirect(10); + bbObj.limit(7); + bbObj.put(0, new Byte("0")); + bbObj.put(1, new Byte("1")); + bbObj.put(2, new Byte("2")); + Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1); + + innnerClassMtd = innerClass.getMethod("load", new Class[] {RoleDAO.Data.class, Row.class}); + innnerClassMtd.invoke(obj, new Object[] {data, row}); + + innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {RoleDAO.Data.class, Integer.TYPE, Object[].class }); + innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test"} }); +// + innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {RoleDAO.Data.class, Integer.TYPE, Object[].class }); + innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} }); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(baos); + innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {RoleDAO.Data.class, DataOutputStream.class }); + innnerClassMtd.invoke(obj, new Object[] {data, dos }); + + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + DataInputStream dis = new DataInputStream(bais); + innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {RoleDAO.Data.class, DataInputStream.class }); + innnerClassMtd.invoke(obj, new Object[] {data, dis }); + + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalArgumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InvocationTargetException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (NoSuchMethodException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (SecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @Test + public void testData() { + RoleDAO.Data data = new RoleDAO.Data(); + NsSplit nss = new NsSplit("test", "test"); + data = new RoleDAO.Data(); + + data.toString(); + + + Question q = Mockito.mock( Question.class); + + Result rs = new Result(nss,0,"test",new Object[0]); + Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test"); + Result retVal= RoleDAO.Data.decode(trans, q, "test|||"); + assertTrue(retVal.status==0); + Result retVal1= RoleDAO.Data.decodeToArray(trans, q, "test|||"); + assertTrue(retVal.status==0); + retVal= RoleDAO.Data.decode(trans, q, "test"); + retVal1= RoleDAO.Data.decodeToArray(trans, q, "test"); + assertTrue(retVal.status==0); + + rs = new Result(nss,1,"test",new Object[0]); + Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test"); + retVal= RoleDAO.Data.decode(trans, q, "test"); + retVal1= RoleDAO.Data.decodeToArray(trans, q, "test"); + assertTrue(retVal.status==1); + + retVal= RoleDAO.Data.decode(trans, q, "test"); + retVal1= RoleDAO.Data.decodeToArray(trans, q, "test"); + assertTrue(retVal.status==1); + + NsDAO.Data ns = new NsDAO.Data(); + ns.name="test"; + RoleDAO.Data.create(ns, "test"); + + UserRoleDAO.Data urdd = new UserRoleDAO.Data(); + urdd.ns="test"; + RoleDAO.Data dd=RoleDAO.Data.decode(urdd); + assertTrue("test".equals(dd.ns)); + + assertTrue(data.encode().contains("null")); + + data.perms = null; + data.perms(true); + + data.perms = new HashSet<>(); + data.perms(true); + + data.perms(false); + data.perms = new TreeSet<>(); + data.perms(true); + } + } class RoleDAOImpl extends RoleDAO{ - public RoleDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,CacheInfoDAO cacheDao, PSInfo readPS) throws APIException, IOException { - super(trans, historyDAO, cacheDao); - setPs(this, readPS, "createPS"); - } - - public RoleDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,CacheInfoDAO cacheDao, PSInfo readPS, Session session ) throws APIException, IOException { - super(trans, historyDAO, cacheDao); - setPs(this, readPS, "createPS"); - setSession(this, session); - } - - - public void setPs(RoleDAOImpl RoleDAOObj, PSInfo psInfoObj, String methodName) { - Field RoleDAOField; - try { - RoleDAOField = CassDAOImpl.class.getDeclaredField(methodName); - - RoleDAOField.setAccessible(true); - // remove final modifier from field - Field modifiersField = Field.class.getDeclaredField("modifiers"); - modifiersField.setAccessible(true); -// modifiersField.setInt(RoleDAOField, RoleDAOField.getModifiers() & ~Modifier.FINAL); - - RoleDAOField.set(RoleDAOObj, psInfoObj); - } 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 setSession(RoleDAOImpl approvalDaoObj, Session session) { - Field nsDaoField; - try { - nsDaoField = AbsCassDAO.class.getDeclaredField("session"); - - 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(approvalDaoObj, session); - } 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 RoleDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,CacheInfoDAO cacheDao, PSInfo readPS) throws APIException, IOException { + super(trans, historyDAO, cacheDao); + setPs(this, readPS, "createPS"); + } + + public RoleDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,CacheInfoDAO cacheDao, PSInfo readPS, Session session ) throws APIException, IOException { + super(trans, historyDAO, cacheDao); + setPs(this, readPS, "createPS"); + setSession(this, session); + } + + + public void setPs(RoleDAOImpl RoleDAOObj, PSInfo psInfoObj, String methodName) { + Field RoleDAOField; + try { + RoleDAOField = CassDAOImpl.class.getDeclaredField(methodName); + + RoleDAOField.setAccessible(true); + // remove final modifier from field + Field modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); +// modifiersField.setInt(RoleDAOField, RoleDAOField.getModifiers() & ~Modifier.FINAL); + + RoleDAOField.set(RoleDAOObj, psInfoObj); + } 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 setSession(RoleDAOImpl approvalDaoObj, Session session) { + Field nsDaoField; + try { + nsDaoField = AbsCassDAO.class.getDeclaredField("session"); + + 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(approvalDaoObj, session); + } 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(); + } + } }