* 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.
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;
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<String> headers = new ArrayList<>();
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.
@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);
pap.init(servletConfig);
}
-
/**
* Sets the up.
*
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
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
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
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/");
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();
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();
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();
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();
}
}