Added Junits for Policy PAP-REST
[policy/engine.git] / ONAP-PAP-REST / src / test / java / org / onap / policy / pap / xacml / rest / controller / DictionaryImportControllerTest.java
index e8d602c..7c1c507 100644 (file)
 package org.onap.policy.pap.xacml.rest.controller;
 
 import static org.junit.Assert.assertTrue;
-import org.onap.policy.pap.xacml.rest.controller.DictionaryImportController;
-import org.junit.After;
+import static org.junit.Assert.fail;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 import org.junit.Before;
 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.rest.dao.CommonClassDao;
+import org.springframework.mock.web.MockHttpServletResponse;
 
-public class DictionaryImportControllerTest {
+public class DictionaryImportControllerTest  extends Mockito{
        
        private static Logger logger = FlexLogger.getLogger(DictionaryImportController.class);
 
+       private static CommonClassDao commonClassDao;
+       private HttpServletRequest request = null;
+       private HttpServletResponse response = null;
+       private DictionaryImportController controller = null;
+       
        @Before
        public void setUp() throws Exception {
                logger.info("setUp: Entering");
+               commonClassDao = Mockito.mock(CommonClassDao.class);
+               doNothing().when(commonClassDao).save(new Object());
+               controller = new DictionaryImportController(); 
+               new DictionaryImportController(commonClassDao);
+               request = Mockito.mock(HttpServletRequest.class);
+               response =  new MockHttpServletResponse();
        }
        
        @Test
@@ -45,8 +71,69 @@ public class DictionaryImportControllerTest {
                assertTrue(cotroller.isValidDictionaryName("ActionList"));
        }
        
-       @After
-        public void destroy(){
-
-        }
+       @Test
+       public void testImportDictionaryData() throws ServletException, IOException{
+               List<String> fileNames = new ArrayList<>();
+               fileNames.add("Attribute.csv");
+               fileNames.add("ActionPolicyDictionary.csv");
+               fileNames.add("OnapName.csv");
+               fileNames.add("MSPolicyDictionary.csv");
+               fileNames.add("ClosedLoopService.csv");
+               fileNames.add("ClosedLoopSite.csv");
+               fileNames.add("VarbindDictionary.csv");
+               fileNames.add("BRMSParamDictionary.csv");
+               fileNames.add("BRMSControllerDictionary.csv");
+               fileNames.add("BRMSDependencyDictionary.csv");
+               fileNames.add("PrefixList.csv");
+               fileNames.add("SecurityZone.csv");
+               fileNames.add("ServiceList.csv");
+               fileNames.add("ServiceGroup.csv");
+               fileNames.add("AddressGroup.csv");
+               fileNames.add("ProtocolList.csv");
+               fileNames.add("TermList.csv");
+               fileNames.add("SearchCriteria.csv");
+               fileNames.add("VNFType.csv");
+               fileNames.add("VSCLAction.csv");
+               fileNames.add("PEPOptions.csv");
+               fileNames.add("Settings.csv");
+               fileNames.add("Zone.csv");
+               fileNames.add("ActionList.csv");
+               for(int i =0; i < fileNames.size(); i++){
+                       File file = new File("src/test/resources/dictionaryImport/"+fileNames.get(i));
+                       try(FileInputStream targetStream = new FileInputStream(file)){
+                               PushPolicyControllerTest pushController = new PushPolicyControllerTest();
+                               when(request.getInputStream()).thenReturn(pushController.getInputStream(getBytes(targetStream)));
+                               when(request.getParameter("userId")).thenReturn("demo");
+                               when(request.getParameter("dictionaryName")).thenReturn(fileNames.get(i));
+                               controller.importDictionaryData(request, response);
+                               assertTrue(HttpServletResponse.SC_OK == response.getStatus());
+                       } catch (IOException e) {
+                               fail();
+                       }
+               }
+               when(request.getParameter("dictionaryName")).thenReturn("WrongName");
+               controller.importDictionaryData(request, response);
+               assertTrue(HttpServletResponse.SC_OK == response.getStatus());
+               
+               when(request.getParameter("dictionaryName")).thenReturn("");
+               controller.importDictionaryData(request, response);
+               assertTrue(HttpServletResponse.SC_BAD_REQUEST == response.getStatus());
+               
+               when(request.getInputStream()).thenReturn(null);
+               when(request.getParameter("dictionaryName")).thenReturn("Attribute.csv");
+               controller.importDictionaryData(request, response);
+               assertTrue(HttpServletResponse.SC_INTERNAL_SERVER_ERROR == response.getStatus());
+       }
+       
+       public static byte[] getBytes(InputStream is) throws IOException {
+               int len;
+               int size = 1024;
+               byte[] buf;
+               ByteArrayOutputStream bos = new ByteArrayOutputStream();
+               buf = new byte[size];
+               while ((len = is.read(buf, 0, size)) != -1)
+                       bos.write(buf, 0, len);
+               buf = bos.toByteArray();
+               return buf;
+       }
 }