-/*******************************************************************************
+/**
* ============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====================================================
- * *
- * *
- ******************************************************************************/
+ * 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 org.onap.aaf.auth.direct.test;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.mockito.MockitoAnnotations.initMocks;
import java.security.Principal;
+import java.util.ArrayList;
+import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.aaf.auth.dao.cass.NsSplit;
+import org.onap.aaf.auth.dao.cass.PermDAO;
+import org.onap.aaf.auth.dao.cass.PermDAO.Data;
import org.onap.aaf.auth.dao.hl.Question;
import org.onap.aaf.auth.direct.DirectAAFLur;
+import org.onap.aaf.auth.direct.DirectAAFLur.PermPermission;
import org.onap.aaf.auth.env.AuthzEnv;
+import org.onap.aaf.auth.env.AuthzTrans;
+import org.onap.aaf.auth.env.AuthzTransImpl;
+import org.onap.aaf.auth.env.NullTrans;
+import org.onap.aaf.auth.layer.Result;
import org.onap.aaf.cadi.Permission;
-import org.powermock.modules.junit4.PowerMockRunner;
-@RunWith(PowerMockRunner.class)
-public class JU_DirectAAFLur {
-
-public static AuthzEnv env;
-public static Question question;
-public DirectAAFLur directAAFLur;
+import org.onap.aaf.cadi.aaf.AAFPermission;
+import org.onap.aaf.cadi.lur.LocalPermission;
+import org.onap.aaf.misc.env.LogTarget;
+import org.onap.aaf.misc.env.Trans;
+@RunWith(MockitoJUnitRunner.class)
+public class JU_DirectAAFLur {
+ @Mock
+ AuthzEnv env;
+
+ @Mock
+ Question question;
+
+ @Mock
+ Principal bait;
+
+ @Mock
+ Permission pond;
+
+ @Mock
+ AuthzTrans trans;
+
+ @Before
+ public void setUp() throws Exception {
+ initMocks(this);
+ Mockito.when(env.newTransNoAvg()).thenReturn(trans);
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
+ }
+
+ public void testFish() {
+ DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
+
+ List<PermDAO.Data> rsVal = new ArrayList<PermDAO.Data>();
+ Result<List<Data>> rs = new Result<List<Data>>(rsVal,0,"test",new Object[0]);
+ Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
+ aafLurObj.fish(bait, pond);
+ }
- @Before
- public void setUp()
- {
- directAAFLur = new DirectAAFLur(env, question);
- }
-
- @Test
- public void testFish()
- {
-
- Principal bait = null;
- Permission pond=null;
- directAAFLur.fish(bait, pond);
-
- assertTrue(true);
-
- }
-
+ @Test
+ public void testFishSecondMtd() {
+ DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
+
+ List<PermDAO.Data> rsVal = new ArrayList<PermDAO.Data>();
+ PermDAO.Data pd = new PermDAO.Data();
+ pd.ns = "ns";
+ pd.type = "name";
+ pd.instance = null;
+ rsVal.add(pd);
+ pd = new PermDAO.Data();
+ pd.ns = "ns";
+ pd.type = "name";
+ pd.instance = "instance";
+ pd.action = null;
+ rsVal.add(pd);
+
+ pd = new PermDAO.Data();
+ pd.ns = "ns";
+ pd.type = "name";
+ pd.instance = "instance1";
+ rsVal.add(pd);
+ pd = new PermDAO.Data();
+ pd.ns = "ns1";
+ pd.type = "name";
+ rsVal.add(pd);
+ pd = new PermDAO.Data();
+ pd.ns = "ns";
+ pd.type = "name1";
+ rsVal.add(pd);
+
+ pd = new PermDAO.Data();
+ pd.ns = "ns";
+ pd.type = "name";
+ pd.instance = "instance";
+ pd.action = "action";
+ rsVal.add(pd);
+
+ pond = new DirectAAFLur.PermPermission("ns", "name", "instance", "action");
+
+ Result<List<Data>> rs = new Result<List<Data>>(rsVal,0,"test",new Object[0]);
+ Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
+ aafLurObj.fish(bait, pond);
+
+ pond = new AAFPermission("ns", "name", "instance", "action");
+
+ Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
+ aafLurObj.fish(bait, pond);
+
+ rs = new Result<List<Data>>(rsVal,1,"test",new Object[0]);
+ Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
+ aafLurObj.fish(bait, pond);
+ rs = new Result<List<Data>>(rsVal,4,"test",new Object[0]);
+ Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
+ aafLurObj.fish(bait, pond);
+ rs = new Result<List<Data>>(rsVal,25,"test",new Object[0]);
+ Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
+ aafLurObj.fish(bait, pond);
+ }
+
+ @Test
+ public void testFishAll() {
+ Mockito.doReturn(Mockito.mock(LogTarget.class)).when(env).error();
+ DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
+
+ List<PermDAO.Data> rsVal = new ArrayList<PermDAO.Data>();
+ PermDAO.Data pd = new PermDAO.Data();
+ pd.ns = "ns";
+ pd.type = "name";
+ pd.instance = null;
+ rsVal.add(pd);
+
+ pond = new DirectAAFLur.PermPermission("ns", "name", "instance", "action");
+ List<Permission> permissions = new ArrayList<>();
+ permissions.add(pond);
+
+ Result<List<Data>> rs = new Result<List<Data>>(rsVal,0,"test",new Object[0]);
+ Mockito.when(question.getPermsByUser(env.newTrans(), bait.getName(), false)).thenReturn(rs);
+ aafLurObj.fishAll(bait, permissions);
+ assertTrue(permissions.size() == 2);
+
+ rs = new Result<List<Data>>(rsVal,1,"test",new Object[0]);
+ Mockito.when(question.getPermsByUser(env.newTrans(), bait.getName(), false)).thenReturn(rs);
+ aafLurObj.fishAll(bait, permissions);
+ }
+
+ @Test
+ public void testDestroy() {
+ DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
+ aafLurObj.destroy();
+ }
+
+ @Test
+ public void testHandlesExclusively() {
+ DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
+ pond = new DirectAAFLur.PermPermission("ns", "name", "instance", "action");
+ assertFalse(aafLurObj.handlesExclusively(pond));
+ }
+
+ @Test
+ public void testToString() {
+ DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
+ assertTrue(aafLurObj.toString().contains("DirectAAFLur is enabled"));
+ }
+
+ @Test
+ public void testHandles() {
+ DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
+ assertTrue(aafLurObj.handles(null));
+ }
+
+ @Test
+ public void testCreatePerm() {
+ DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
+ Permission retVal = aafLurObj.createPerm("test");
+ assertTrue(retVal instanceof LocalPermission);
+
+ NsSplit nss = new NsSplit("test", "test");
+ Result<NsSplit> rs = new Result<NsSplit>(nss,0,"test",new Object[0]);
+ Mockito.when(question.deriveNsSplit(NullTrans.singleton() , "test")).thenReturn(rs);
+ retVal = aafLurObj.createPerm("test|1|2");
+ assertTrue(retVal instanceof PermPermission);
+
+ rs = new Result<NsSplit>(null,1,"test",new Object[0]);
+ Mockito.when(question.deriveNsSplit(NullTrans.singleton() , "test")).thenReturn(rs);
+ retVal = aafLurObj.createPerm("test|1|2");
+ assertTrue(retVal instanceof LocalPermission);
+ }
+
+ @Test
+ public void testClear() {
+ AuthzTransImpl trans = Mockito.mock(AuthzTransImpl.class);
+ Mockito.when(env.newTrans()).thenReturn(trans);
+ DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
+ StringBuilder sb = new StringBuilder();
+ Mockito.when(trans.auditTrail(0, sb)).thenReturn(Mockito.mock(Trans.Metric.class));
+ aafLurObj.clear(bait, sb);
+ }
+
+ @Test
+ public void testPermPermission() {
+ AuthzTransImpl trans = Mockito.mock(AuthzTransImpl.class);
+ NsSplit nss = new NsSplit("test", "test");
+ Result<NsSplit> rs = new Result<NsSplit>(nss,0,"test",new Object[0]);
+ Mockito.when(question.deriveNsSplit(trans , "test")).thenReturn(rs);
+ PermPermission pp = new PermPermission(trans, question, "test|test|test|test");
+
+ assertTrue("test".equalsIgnoreCase(pp.getKey()));
+ assertTrue("AAFLUR".equalsIgnoreCase(pp.permType()));
+
+ assertFalse(pp.match(null));
+
+ pond = new AAFPermission("test.test", "test", "test", "test");
+ assertTrue(pp.match(pond));
+ }
}