diff options
2 files changed, 135 insertions, 5 deletions
diff --git a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/utils/LogfileLoader.java b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/utils/LogfileLoader.java index ab1a3a78..af9f8295 100644 --- a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/utils/LogfileLoader.java +++ b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/utils/LogfileLoader.java @@ -218,7 +218,7 @@ public class LogfileLoader extends Thread { }
}
- private boolean pruneRecords() {
+ boolean pruneRecords() {
boolean did1 = false;
long count = countRecords();
long threshold = DEFAULT_LOG_RETENTION;
@@ -282,7 +282,7 @@ public class LogfileLoader extends Thread { return did1;
}
- private long countRecords() {
+ long countRecords() {
long count = 0;
Connection conn = null;
try {
@@ -303,7 +303,7 @@ public class LogfileLoader extends Thread { return count;
}
- private Map<Long, Long> getHistogram() {
+ Map<Long, Long> getHistogram() {
Map<Long, Long> map = new HashMap<Long, Long>();
Connection conn = null;
try {
@@ -382,7 +382,7 @@ public class LogfileLoader extends Thread { }
@SuppressWarnings("resource")
- private int[] process(File f) {
+ int[] process(File f) {
int ok = 0, total = 0;
try {
Connection conn = db.getConnection();
@@ -442,7 +442,7 @@ public class LogfileLoader extends Thread { return new int[]{ok, total};
}
- private Loadable[] buildRecords(String line) throws ParseException {
+ Loadable[] buildRecords(String line) throws ParseException {
String[] pp = line.split("\\|");
if (pp != null && pp.length >= 7) {
String rtype = pp[1].toUpperCase();
diff --git a/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/utils/LogfileLoaderTest.java b/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/utils/LogfileLoaderTest.java new file mode 100644 index 00000000..e24a9a3f --- /dev/null +++ b/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/utils/LogfileLoaderTest.java @@ -0,0 +1,130 @@ +/*- + * ============LICENSE_START======================================================= + * 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. + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.dmaap.datarouter.provisioning.utils; + +import org.junit.*; +import org.junit.rules.TemporaryFolder; +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 java.util.Map; + + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import java.util.HashMap; + + +@RunWith(PowerMockRunner.class) +@SuppressStaticInitializationFor("org.onap.dmaap.datarouter.provisioning.beans.Parameters") +public class LogfileLoaderTest { + + private static EntityManagerFactory emf; + private static EntityManager em; + private LogfileLoader lfl = LogfileLoader.getLoader(); + + + @Rule + public TemporaryFolder folder = new TemporaryFolder(); + + + @BeforeClass + public static void init() { + emf = Persistence.createEntityManagerFactory("dr-unit-tests"); + em = emf.createEntityManager(); + System.setProperty( + "org.onap.dmaap.datarouter.provserver.properties", + "src/test/resources/h2Database.properties"); + InternalServlet internalServlet = new InternalServlet(); + } + + + @AfterClass + public static void tearDownClass() { + em.clear(); + em.close(); + 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)); + int[] expect = {0, 1}; + Assert.assertArrayEquals(expect, actual); + } + + + @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)); + int[] expect = {0, 1}; + Assert.assertArrayEquals(expect, actual); + } + + + @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)); + PowerMockito.mockStatic(Parameters.class); + PowerMockito.when(Parameters.getParameter(Parameters.PROV_LOG_RETENTION)).thenReturn(new Parameters(Parameters.PROV_LOG_RETENTION, "0")); + Assert.assertEquals(lfl.pruneRecords(), false); + } + + + @Test + public void Verify_Histogram_When_Request_Type_Post() throws Exception { + 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)); + Map<Long, Long> expect = new HashMap<>(); + expect.put(17772L,2L); + expect.put(29353L,1L); + Map<Long, Long> actual = lfl.getHistogram(); + assertTrue(actual.equals(expect)); + } + + + private File prepFile(String content) throws IOException{ + File file1 = folder.newFile("myfile1.txt"); + try (FileWriter fileWriter = new FileWriter(file1)) { + fileWriter.write(content); + }catch (IOException e){ + System.out.println(e.getMessage()); + } + return file1; + } +} |