Even more unit test and code cleanup
[dmaap/datarouter.git] / datarouter-prov / src / test / java / org / onap / dmaap / datarouter / provisioning / utils / LogfileLoaderTest.java
index 7f6d7de..a15509b 100644 (file)
 
 package org.onap.dmaap.datarouter.provisioning.utils;
 
+import static junit.framework.TestCase.assertTrue;
+import static org.junit.Assert.assertFalse;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.nio.file.Files;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.rules.TemporaryFolder;
+import org.junit.Test;
 import org.junit.runner.RunWith;
-
 import org.onap.dmaap.datarouter.provisioning.InternalServlet;
 import org.onap.dmaap.datarouter.provisioning.beans.Parameters;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
 import org.powermock.modules.junit4.PowerMockRunner;
 
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-
-import static org.junit.Assert.assertFalse;
-
-import org.junit.Test;
-
-
-
 @RunWith(PowerMockRunner.class)
 @SuppressStaticInitializationFor("org.onap.dmaap.datarouter.provisioning.beans.Parameters")
 public class LogfileLoaderTest {
@@ -53,10 +50,18 @@ public class LogfileLoaderTest {
     private static EntityManagerFactory emf;
     private static EntityManager em;
     private LogfileLoader lfl = LogfileLoader.getLoader();
+    private File testLog;
 
-    @Rule
-    public TemporaryFolder folder = new TemporaryFolder();
+    @Before
+    public void setUp() throws Exception {
+        testLog = new File(System.getProperty("user.dir") + "/src/test/resources/IN.test_prov_logs");
+        prepFile(testLog);
+    }
 
+    @After
+    public void tearDown() throws IOException {
+        Files.deleteIfExists(testLog.toPath());
+    }
 
     @BeforeClass
     public static void init() {
@@ -68,7 +73,6 @@ public class LogfileLoaderTest {
         InternalServlet internalServlet = new InternalServlet();
     }
 
-
     @AfterClass
     public static void tearDownClass() {
         em.clear();
@@ -76,42 +80,47 @@ public class LogfileLoaderTest {
         emf.close();
     }
 
-
     @Test
-    public void Verify_File_Processing_when_Req_Type_LOG() throws IOException {
-        String fileContent = "2018-08-29-10-10-10-543.|LOG|1|1|url/file123|method|1|1|type|1|128.0.0.9|user123|2|1|1|1|other|1";
-        int[] actual = lfl.process(prepFile(fileContent, "file1"));
-        int[] expect = {0, 1};
+    public void Verify_File_Processing_Returns_Expected_Array() {
+        int[] actual = lfl.process(testLog);
+        int[] expect = {5, 7};
         Assert.assertArrayEquals(expect, actual);
+        Assert.assertNotNull(lfl.getBitSet());
+        Assert.assertTrue(lfl.isIdle());
     }
 
-
     @Test
-    public void Verify_File_Processing_when_Req_Type_EXP() throws IOException{
-        String fileContent = "2018-08-29-10-10-10-543.|EXP|1|1|1|'url/file123'|method|ctype|3|other|4";
-        int[] actual = lfl.process(prepFile(fileContent, "file2"));
-        int[] expect = {0, 1};
-        Assert.assertArrayEquals(expect, actual);
+    public void Verify_Records_Prune_When_Record_Count_Is_Less_Then_Threshold() {
+        lfl.process(testLog);
+        PowerMockito.mockStatic(Parameters.class);
+        PowerMockito.when(Parameters.getParameter(Parameters.PROV_LOG_RETENTION)).thenReturn(new Parameters(Parameters.PROV_LOG_RETENTION, "0"));
+        PowerMockito.when(Parameters.getParameter(Parameters.DEFAULT_LOG_RETENTION)).thenReturn(new Parameters(Parameters.DEFAULT_LOG_RETENTION, "1000000"));
+        assertFalse(lfl.pruneRecords());
     }
 
-
     @Test
-    public void Verify_Records_Prune_When_Record_Count_Is_Less_Then_Threshold() throws IOException{
-        String fileContent = "2018-08-29-10-10-10-543.|PUB|1|1|https://dmaap-dr-prov:8443/publish/1/file123/|POST|application/vnd.att-dr.feed|2|128.0.0.9|user123|200";
-        lfl.process(prepFile(fileContent, "file3"));
+    public void Verify_Records_Prune_When_Record_Count_Is_Greater_Then_Threshold() {
+        lfl.process(testLog);
         PowerMockito.mockStatic(Parameters.class);
         PowerMockito.when(Parameters.getParameter(Parameters.PROV_LOG_RETENTION)).thenReturn(new Parameters(Parameters.PROV_LOG_RETENTION, "0"));
-        assertFalse(lfl.pruneRecords());
+        PowerMockito.when(Parameters.getParameter(Parameters.DEFAULT_LOG_RETENTION)).thenReturn(new Parameters(Parameters.DEFAULT_LOG_RETENTION, "1"));
+        assertTrue(lfl.pruneRecords());
     }
 
 
-    private File prepFile(String content, String fileName) throws IOException{
-        File file1 = folder.newFile(fileName);
-        try (FileWriter fileWriter = new FileWriter(file1)) {
-            fileWriter.write(content);
-        }catch (IOException e){
+    private void prepFile(File logFile) {
+        String testLogs =           "2018-08-29-10-10-10-543.|LOG|1|1|https://dmaap-dr-prov:/url/file123|POST|application/vnd.att-dr.feed|100|mockType|file123|https://dmaap-dr-prov|user123|200|1|1|200|2|2\n"
+                                  + "2018-08-29-10-10-10-543.|EXP|1|1|1|'url/file123'|PUT|null|3|new reason|4\n"
+                                  + "2018-08-29-10-10-10-543.|PUB|1|1|https://dmaap-dr-prov:8443/publish/1/file123/|POST|application/vnd.att-dr.feed|2|128.0.0.9|user123|200\n"
+                                  + "2018-08-29-10-10-10-543.|PBF|1|1|https://dmaap-dr-prov:8443/publish/1/file123/|POST|application/vnd.att-dr.feed|100|100|128.0.0.9|user123|failed\n"
+                                  + "2018-08-29-10-10-10-543.|DLX|1|1|1|100|100\n"
+                                  + "2018-08-29-10-10-10-543.|Bad Record|||\n"
+                                  + "2018-08-29-10-10-10-543.|DEL|2|1|2|https://dmaap-dr-prov:8443/publish/1/file123/|PUT|application/vnd.att-dr.feed|100|user123|200|123456";
+        try (FileWriter fileWriter = new FileWriter(logFile)) {
+            fileWriter.write(testLogs);
+        }
+        catch (IOException e){
             System.out.println(e.getMessage());
         }
-        return file1;
     }
 }