X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=ONAP-PAP-REST%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fxacml%2Frest%2Fcontroller%2FPushPolicyControllerTest.java;h=f9711b9eddd6ca9ec2f618ebf2dccac98f55c61b;hb=1e61676b77dd09659027b8984f050df7e8538526;hp=1f8cb6f90b710ca3ba4cedaa3cdd58456d50522a;hpb=ef9258807505ff24e8221bae25d06ab65029397c;p=policy%2Fengine.git diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyControllerTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyControllerTest.java index 1f8cb6f90..f9711b9ed 100644 --- a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyControllerTest.java +++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyControllerTest.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * ONAP-PAP-REST * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2018-2019 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. @@ -17,11 +17,14 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.pap.xacml.rest.controller; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; +import com.att.research.xacml.api.pap.PAPException; + import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.File; @@ -39,111 +42,123 @@ import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.hibernate.SessionFactory; import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mockito; import org.onap.policy.common.logging.flexlogger.FlexLogger; import org.onap.policy.common.logging.flexlogger.Logger; import org.onap.policy.pap.xacml.rest.XACMLPapServlet; +import org.onap.policy.pap.xacml.rest.components.PolicyDBDaoTest; import org.onap.policy.rest.dao.CommonClassDao; import org.onap.policy.rest.jpa.PolicyVersion; import org.springframework.mock.web.MockServletConfig; -import com.att.research.xacml.api.pap.PAPException; - - public class PushPolicyControllerTest { - - private static Logger logger = FlexLogger.getLogger(PushPolicyControllerTest.class); - private static CommonClassDao commonClassDao; - private String jsonString = null; - private HttpServletRequest request = null; - private PushPolicyController controller = null; - private HttpServletResponse response = null; + + private static Logger logger = FlexLogger.getLogger(PushPolicyControllerTest.class); + private static CommonClassDao commonClassDao; + private static SessionFactory sessionFactory; + private String jsonString = null; + private HttpServletRequest request = null; + private PushPolicyController controller = null; + private HttpServletResponse response = null; private List headers = new ArrayList<>(); private ServletConfig servletConfig; private XACMLPapServlet pap; - @Before - public void setUp() throws Exception { - logger.info("setUp: Entering"); - request = Mockito.mock(HttpServletRequest.class); - response = Mockito.mock(HttpServletResponse.class); + @BeforeClass + public static void beforeClassSetup() throws ServletException { + sessionFactory = PolicyDBDaoTest.setupH2DbDaoImpl("pushcontrollertest"); + } + + @Before + public void setUp() throws Exception { + logger.info("setUp: Entering"); + request = Mockito.mock(HttpServletRequest.class); + response = Mockito.mock(HttpServletResponse.class); Mockito.when(request.getHeaderNames()).thenReturn(Collections.enumeration(headers)); Mockito.when(request.getAttributeNames()).thenReturn(Collections.enumeration(headers)); servletConfig = Mockito.mock(MockServletConfig.class); System.setProperty("com.sun.management.jmxremote.port", "9993"); Mockito.when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers)); - Mockito.when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("src/test/resources/xacml.pap.properties"); - - commonClassDao = Mockito.mock(CommonClassDao.class); - controller = new PushPolicyController(); - controller.setCommonClassDao(commonClassDao); - logger.info("setUp: exit"); - } - - @Test - public void testPushPolicy() throws ServletException, PAPException{ - PolicyVersion versionData = new PolicyVersion(); - versionData.setPolicyName("com"+File.separator+"Config_Test"); - versionData.setActiveVersion(1); - versionData.setHigherVersion(1); - List data = new ArrayList<>(); - data.add(versionData); - when(commonClassDao.getDataById(PolicyVersion.class, "policyName", "com"+File.separator+"Config_Test")).thenReturn(data); - pap = new XACMLPapServlet(); - pap.init(servletConfig); - callPushPolicy(); - when(commonClassDao.getDataById(PolicyVersion.class, "policyName", "com"+File.separator+"Config_Test")).thenReturn(null); - callPushPolicy(); - } - - public void callPushPolicy(){ - jsonString = "{\"policyScope\":\"com\",\"filePrefix\":\"Config_\",\"policyName\":\"Test\",\"pdpGroup\":\"default\"}"; - try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){ - char[] charBuffer = new char[8 * 1024]; - StringBuilder builder = new StringBuilder(); - int numCharsRead; - while ((numCharsRead = br.read(charBuffer, 0, charBuffer.length)) != -1) { - builder.append(charBuffer, 0, numCharsRead); - } - when(request.getInputStream()).thenReturn(getInputStream(builder.toString().getBytes(StandardCharsets.UTF_8))); - controller.pushPolicy(request, response); - assertTrue(response != null); - }catch(Exception e){ - logger.error("Exception"+ e); - } - } - - public ServletInputStream getInputStream(byte[] body) throws IOException { - final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body); - ServletInputStream servletInputStream = new ServletInputStream() { - public int read() throws IOException { - return byteArrayInputStream.read(); + Mockito.when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")) + .thenReturn("src/test/resources/xacml.pap.properties"); + + commonClassDao = Mockito.mock(CommonClassDao.class); + controller = new PushPolicyController(); + controller.setCommonClassDao(commonClassDao); + logger.info("setUp: exit"); + } + + @Test + public void testPushPolicy() throws ServletException, PAPException { + PolicyVersion versionData = new PolicyVersion(); + versionData.setPolicyName("com" + File.separator + "Config_Test"); + versionData.setActiveVersion(1); + versionData.setHigherVersion(1); + List data = new ArrayList<>(); + data.add(versionData); + when(commonClassDao.getDataById(PolicyVersion.class, "policyName", "com" + File.separator + "Config_Test")) + .thenReturn(data); + pap = new XACMLPapServlet(); + pap.init(servletConfig); + callPushPolicy(); + when(commonClassDao.getDataById(PolicyVersion.class, "policyName", "com" + File.separator + "Config_Test")) + .thenReturn(null); + callPushPolicy(); + } + + public void callPushPolicy() { + jsonString = + "{\"policyScope\":\"com\",\"filePrefix\":\"Config_\",\"policyName\":\"Test\",\"pdpGroup\":\"default\"}"; + try (BufferedReader br = new BufferedReader(new StringReader(jsonString))) { + char[] charBuffer = new char[8 * 1024]; + StringBuilder builder = new StringBuilder(); + int numCharsRead; + while ((numCharsRead = br.read(charBuffer, 0, charBuffer.length)) != -1) { + builder.append(charBuffer, 0, numCharsRead); + } + when(request.getInputStream()) + .thenReturn(getInputStream(builder.toString().getBytes(StandardCharsets.UTF_8))); + controller.pushPolicy(request, response); + assertTrue(response != null); + } catch (Exception e) { + logger.error("Exception" + e); + } + } + + public ServletInputStream getInputStream(byte[] body) throws IOException { + final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body); + ServletInputStream servletInputStream = new ServletInputStream() { + @Override + public int read() throws IOException { + return byteArrayInputStream.read(); + } + + @Override + public boolean isFinished() { + return false; + } + + @Override + public boolean isReady() { + return false; + } + + @Override + public void setReadListener(ReadListener readListener) { } + }; + return servletInputStream; + } - @Override - public boolean isFinished() { - return false; - } - - @Override - public boolean isReady() { - return false; - } - - @Override - public void setReadListener(ReadListener readListener) { - } - }; - return servletInputStream; - } - - @After - public void destroy(){ - if(pap!=null) - pap.destroy(); - } + @After + public void destroy() { + if (pap != null) + pap.destroy(); + } }