X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=ONAP-PAP-REST%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fxacml%2Frest%2FConsoleAndApiServiceTest.java;h=e78151fcbbe1f61475ba9369643c7d19d70b1012;hp=bad043d0f4b34f3e9079d3f4613ea810f7d01313;hb=5a5842e77e4e0f0b6207192b374d99753db26c7e;hpb=418b33f0488a4e80667d7d998620b20ced1f3882 diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/ConsoleAndApiServiceTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/ConsoleAndApiServiceTest.java index bad043d0f..e78151fcb 100644 --- a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/ConsoleAndApiServiceTest.java +++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/ConsoleAndApiServiceTest.java @@ -3,6 +3,7 @@ * ONAP-PAP-REST * ================================================================================ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2019 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,39 +22,45 @@ package org.onap.policy.pap.xacml.rest; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import static org.mockito.Mockito.when; + import com.att.research.xacml.util.XACMLProperties; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; + import java.io.ByteArrayInputStream; +import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; -import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Collections; import java.util.List; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType; + import org.apache.commons.io.IOUtils; import org.hibernate.SessionFactory; -import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import org.mockito.Mockito; -import org.onap.policy.common.logging.ONAPLoggingContext; +import org.onap.policy.common.logging.OnapLoggingContext; import org.onap.policy.pap.xacml.rest.components.ConfigPolicy; import org.onap.policy.pap.xacml.rest.components.Policy; -import org.onap.policy.pap.xacml.rest.components.PolicyDBDao; +import org.onap.policy.pap.xacml.rest.components.PolicyDbDao; import org.onap.policy.pap.xacml.rest.components.PolicyDBDaoTest; -import org.onap.policy.pap.xacml.rest.components.PolicyDBDaoTransaction; +import org.onap.policy.pap.xacml.rest.components.PolicyDbDaoTransaction; import org.onap.policy.pap.xacml.rest.daoimpl.CommonClassDaoImpl; import org.onap.policy.pap.xacml.rest.policycontroller.PolicyCreation; import org.onap.policy.rest.adapter.PolicyRestAdapter; +import org.onap.policy.rest.dao.PolicyDbException; import org.onap.policy.xacml.std.pap.StdEngine; import org.onap.policy.xacml.std.pap.StdPDP; import org.springframework.mock.web.DelegatingServletInputStream; @@ -81,8 +88,8 @@ public class ConsoleAndApiServiceTest { private static final String USER_ID = "userId"; private static final String APIFLAG = "apiflag"; private static final String ENVIRONMENT_HEADER = "Environment"; - private static PolicyDBDao dbd; - private static Path repository; + private static final OnapLoggingContext logContext = Mockito.mock(OnapLoggingContext.class); + private static PolicyDbDao dbd; private static StdEngine stdEngine = null; private static SessionFactory sessionFactory = null; private static List headers = new ArrayList<>(); @@ -91,7 +98,8 @@ public class ConsoleAndApiServiceTest { private static XACMLPapServlet pap; private HttpServletRequest httpServletRequest; private HttpServletResponse httpServletResponse; - private static final ONAPLoggingContext logContext = Mockito.mock(ONAPLoggingContext.class); + @Rule + public TemporaryFolder folder = new TemporaryFolder(); /** * Sets the up before class. @@ -101,16 +109,10 @@ public class ConsoleAndApiServiceTest { @BeforeClass public static void setUpBeforeClass() throws Exception { System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "src/test/resources/xacml.pap.properties"); - try { - sessionFactory = PolicyDBDaoTest.setupH2DbDaoImpl("testConsoleApi"); - } catch (Exception e) { - Assert.fail(); - } - - PolicyDBDao.setJunit(true); - dbd = PolicyDBDao.getPolicyDBDaoInstance(); - PolicyDBDao.setJunit(true); - + sessionFactory = PolicyDBDaoTest.setupH2DbDaoImpl("testConsoleApi"); + PolicyDbDao.setJunit(true); + dbd = PolicyDbDao.getPolicyDbDaoInstance(); + PolicyDbDao.setJunit(true); consoleAndApi = new ConsoleAndApiService(); servletConfig = Mockito.mock(MockServletConfig.class); @@ -122,7 +124,6 @@ public class ConsoleAndApiServiceTest { pap.init(servletConfig); } - /** * Sets the up. * @@ -136,65 +137,52 @@ public class ConsoleAndApiServiceTest { Mockito.when(httpServletRequest.getAttributeNames()).thenReturn(Collections.enumeration(headers)); CommonClassDaoImpl.setSessionfactory(sessionFactory); PolicyCreation.setCommonClassDao(new CommonClassDaoImpl()); - repository = Paths.get("src/test/resources/pdps"); - stdEngine = new StdEngine(repository); + File tmpGrpDir = folder.newFolder("src", "test", "resources", "grpTest"); + stdEngine = new StdEngine(tmpGrpDir.toPath()); dbd.setPapEngine(stdEngine); } @Test - public void testGroupCreation() { + public void testGroupCreation() throws IOException { Mockito.when(httpServletRequest.getHeader(ENVIRONMENT_HEADER)).thenReturn(DEVL); Mockito.when(httpServletRequest.getMethod()).thenReturn(POST); Mockito.when(httpServletRequest.getParameter(APIFLAG)).thenReturn(API2); Mockito.when(httpServletRequest.getParameter(USER_ID)).thenReturn(API); Mockito.when(httpServletRequest.getParameter(GROUP_DESCRIPTION)).thenReturn("test"); Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn(TESTGRP1); - try { - consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP1, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } + consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP1, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); + } @Test - public void testGroupNotExistInDb() { + public void testGroupNotExistInDb() throws IOException { Mockito.when(httpServletRequest.getHeader(ENVIRONMENT_HEADER)).thenReturn(DEVL); Mockito.when(httpServletRequest.getMethod()).thenReturn(POST); Mockito.when(httpServletRequest.getParameter(APIFLAG)).thenReturn(API2); Mockito.when(httpServletRequest.getParameter(USER_ID)).thenReturn(API); Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn("testgrpNotExist"); - try { - consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, "testgrpNotExist", logContext, stdEngine); - assertTrue(HttpServletResponse.SC_INTERNAL_SERVER_ERROR == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } + consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, "testgrpNotExist", logContext, stdEngine); + assertTrue(HttpServletResponse.SC_INTERNAL_SERVER_ERROR == httpServletResponse.getStatus()); + } @Test - public void testGroupChange() { + public void testGroupChange() throws IOException { Mockito.when(httpServletRequest.getHeader(ENVIRONMENT_HEADER)).thenReturn(DEVL); Mockito.when(httpServletRequest.getMethod()).thenReturn(POST); Mockito.when(httpServletRequest.getParameter(APIFLAG)).thenReturn(API2); Mockito.when(httpServletRequest.getParameter(USER_ID)).thenReturn(API); Mockito.when(httpServletRequest.getParameter(GROUP_DESCRIPTION)).thenReturn("test"); Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn(TESTGRP2); - try { - consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP2, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } + consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP2, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); Mockito.when(httpServletRequest.getParameter(GROUP_DESCRIPTION)).thenReturn(null); Mockito.when(httpServletRequest.getParameter(DEFAULT)).thenReturn(DEFAULT); - try { - consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP2, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } + consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP2, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); + } @Test @@ -205,17 +193,13 @@ public class ConsoleAndApiServiceTest { Mockito.when(httpServletRequest.getParameter(USER_ID)).thenReturn(API); Mockito.when(httpServletRequest.getParameter(GROUP_DESCRIPTION)).thenReturn(null); Mockito.when(httpServletRequest.getParameter(POLICY_ID)).thenReturn(POLICY_NAME); - repository = Paths.get(PDPS); - stdEngine = new StdEngine(repository); + stdEngine = new StdEngine(Paths.get(PDPS)); dbd.setPapEngine(stdEngine); populatePolicyInDb(); - try { - consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, DEFAULT, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } + consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, DEFAULT, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); + } @Test @@ -225,16 +209,12 @@ public class ConsoleAndApiServiceTest { Mockito.when(httpServletRequest.getParameter(APIFLAG)).thenReturn(API2); Mockito.when(httpServletRequest.getParameter(USER_ID)).thenReturn(API); Mockito.when(httpServletRequest.getParameter("policy")).thenReturn(POLICY_NAME); - repository = Paths.get(PDPS); - stdEngine = new StdEngine(repository); + stdEngine = new StdEngine(Paths.get(PDPS)); dbd.setPapEngine(stdEngine); - try { - consoleAndApi.doAcPut(httpServletRequest, httpServletResponse, DEFAULT, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } + consoleAndApi.doAcPut(httpServletRequest, httpServletResponse, DEFAULT, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); + } @Test @@ -246,15 +226,11 @@ public class ConsoleAndApiServiceTest { Mockito.when(httpServletRequest.getParameter(USER_ID)).thenReturn(API); Mockito.when(httpServletRequest.getParameter(GROUP_DESCRIPTION)).thenReturn("test"); Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn(TESTGRP4); - try { - consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP4, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); - Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn(TESTGRP5); - consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP5, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } + consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP4, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); + Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn(TESTGRP5); + consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP5, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); Mockito.when(httpServletRequest.getParameter(GROUP_DESCRIPTION)).thenReturn(null); Mockito.when(httpServletRequest.getParameter(PDP_ID)).thenReturn("http://localhost:4344/pdp/"); @@ -264,12 +240,8 @@ public class ConsoleAndApiServiceTest { ObjectWriter ow = new ObjectMapper().writer(); when(httpServletRequest.getInputStream()).thenReturn(new DelegatingServletInputStream( new ByteArrayInputStream(ow.writeValueAsString(newPdp).getBytes(StandardCharsets.UTF_8)))); - try { - consoleAndApi.doAcPut(httpServletRequest, httpServletResponse, TESTGRP5, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } + consoleAndApi.doAcPut(httpServletRequest, httpServletResponse, TESTGRP5, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); httpServletRequest = Mockito.mock(HttpServletRequest.class); httpServletResponse = new MockHttpServletResponse(); @@ -279,12 +251,8 @@ public class ConsoleAndApiServiceTest { Mockito.when(httpServletRequest.getParameter(USER_ID)).thenReturn(API); Mockito.when(httpServletRequest.getParameter(PDP_ID)).thenReturn("http://localhost:4344/pdp/"); Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn(TESTGRP4); - try { - consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP4, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } + consoleAndApi.doAcPost(httpServletRequest, httpServletResponse, TESTGRP4, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); httpServletRequest = Mockito.mock(HttpServletRequest.class); httpServletResponse = new MockHttpServletResponse(); @@ -294,45 +262,38 @@ public class ConsoleAndApiServiceTest { Mockito.when(httpServletRequest.getParameter(USER_ID)).thenReturn(API); Mockito.when(httpServletRequest.getParameter(PDP_ID)).thenReturn("http://localhost:4344/pdp/"); Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn(TESTGRP4); - try { - consoleAndApi.doAcDelete(httpServletRequest, httpServletResponse, TESTGRP4, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } + consoleAndApi.doAcDelete(httpServletRequest, httpServletResponse, TESTGRP4, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_NO_CONTENT == httpServletResponse.getStatus()); } @Test public void testGet() throws Exception { + stdEngine = new StdEngine(Paths.get("src", "test", "resources", "pdps")); + dbd.setPapEngine(stdEngine); Mockito.when(httpServletRequest.getHeader(ENVIRONMENT_HEADER)).thenReturn(DEVL); Mockito.when(httpServletRequest.getMethod()).thenReturn("GET"); Mockito.when(httpServletRequest.getParameter(APIFLAG)).thenReturn(API2); Mockito.when(httpServletRequest.getParameter(USER_ID)).thenReturn(API); Mockito.when(httpServletRequest.getParameter(PDP_ID)).thenReturn("http://localhost:4344/pdp/"); Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn(""); - try { - consoleAndApi.doAcGet(httpServletRequest, httpServletResponse, "", logContext, stdEngine); - assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus()); - httpServletResponse = new MockHttpServletResponse(); - Mockito.when(httpServletRequest.getParameter(DEFAULT)).thenReturn(DEFAULT); - consoleAndApi.doAcGet(httpServletRequest, httpServletResponse, "", logContext, stdEngine); - assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus()); - Mockito.when(httpServletRequest.getParameter(PDP_ID)).thenReturn(null); - Mockito.when(httpServletRequest.getParameter(DEFAULT)).thenReturn(null); - consoleAndApi.doAcGet(httpServletRequest, httpServletResponse, "", logContext, stdEngine); - assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus()); - Mockito.when(httpServletRequest.getParameter("getPDPGroup")).thenReturn(TESTGROUP2); - Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn(TESTGROUP2); - consoleAndApi.doAcGet(httpServletRequest, httpServletResponse, TESTGROUP2, logContext, stdEngine); - assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus()); - } catch (IOException e) { - fail(e.getMessage()); - } - + consoleAndApi.doAcGet(httpServletRequest, httpServletResponse, "", logContext, stdEngine); + assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus()); + httpServletResponse = new MockHttpServletResponse(); + Mockito.when(httpServletRequest.getParameter(DEFAULT)).thenReturn(DEFAULT); + consoleAndApi.doAcGet(httpServletRequest, httpServletResponse, "", logContext, stdEngine); + assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus()); + Mockito.when(httpServletRequest.getParameter(PDP_ID)).thenReturn(null); + Mockito.when(httpServletRequest.getParameter(DEFAULT)).thenReturn(null); + consoleAndApi.doAcGet(httpServletRequest, httpServletResponse, "", logContext, stdEngine); + assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus()); + Mockito.when(httpServletRequest.getParameter("getPDPGroup")).thenReturn(TESTGROUP2); + Mockito.when(httpServletRequest.getParameter(GROUP_NAME)).thenReturn(TESTGROUP2); + consoleAndApi.doAcGet(httpServletRequest, httpServletResponse, TESTGROUP2, logContext, stdEngine); + assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus()); } - private static void populatePolicyInDb() { + private static void populatePolicyInDb() throws IOException, PolicyDbException { CommonClassDaoImpl.setSessionfactory(sessionFactory); PolicyCreation.setCommonClassDao(new CommonClassDaoImpl()); Policy policyObject = new ConfigPolicy(); @@ -348,26 +309,17 @@ public class ConsoleAndApiServiceTest { policyObject.policyAdapter.setHighestVersion(1); PolicyType policyTypeObject = new PolicyType(); policyObject.policyAdapter.setPolicyData(policyTypeObject); - ClassLoader classLoader = ConsoleAndApiServiceTest.class.getClassLoader(); + PolicyType policyConfig = new PolicyType(); policyConfig.setVersion("1"); policyConfig.setPolicyId(""); policyConfig.setTarget(new TargetType()); policyObject.policyAdapter.setData(policyConfig); - try { - policyObject.policyAdapter - .setParentPath(IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"))); - } catch (Exception e2) { - fail(); - } - - PolicyDBDaoTransaction transaction = dbd.getNewTransaction(); - try { - transaction.createPolicy(policyObject, API); - transaction.commitTransaction(); - } catch (Exception e) { - transaction.rollbackTransaction(); - Assert.fail(); - } + policyObject.policyAdapter.setParentPath(IOUtils.toString( + ConsoleAndApiServiceTest.class.getClassLoader().getResourceAsStream("Config_SampleTest1206.1.xml"))); + + PolicyDbDaoTransaction transaction = dbd.getNewTransaction(); + transaction.createPolicy(policyObject, API); + transaction.commitTransaction(); } }