Initial OpenECOMP policy/engine commit
[policy/engine.git] / LogParser / src / test / java / org / openecomp / xacml / parser / ParseLogTest.java
diff --git a/LogParser/src/test/java/org/openecomp/xacml/parser/ParseLogTest.java b/LogParser/src/test/java/org/openecomp/xacml/parser/ParseLogTest.java
new file mode 100644 (file)
index 0000000..08df57a
--- /dev/null
@@ -0,0 +1,382 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * LogParser
+ * ================================================================================
+ * Copyright (C) 2017 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.xacml.parser;
+
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.text.SimpleDateFormat;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Properties;
+
+import org.openecomp.policy.common.im.AdministrativeStateException;
+import org.openecomp.policy.common.im.IntegrityMonitor;
+import org.openecomp.policy.common.im.StandbyStatusException;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.openecomp.xacml.parser.LogEntryObject;
+import org.openecomp.xacml.parser.ParseLog;
+import org.openecomp.xacml.parser.LogEntryObject.LOGTYPE;
+
+
+public class ParseLogTest {
+
+       private ParseLog logParser = new ParseLog();
+       private Properties config = new Properties();
+       private String configFile = "test_config.properties";
+       private static Properties myProp;
+       private static Properties systemProps;
+       private static String resourceName;
+       private IntegrityMonitor im;
+
+       
+       @Before
+       public void setUp() throws Exception {
+               System.setProperty("com.sun.management.jmxremote.port", "9998");
+               im = Mockito.mock(IntegrityMonitor.class);
+               
+               // Need PowerMockito for mocking static method getInstance(...)
+       //      PowerMockito.mockStatic(IntegrityMonitor.class);
+               
+               try {
+                       Mockito.doNothing().when(im).startTransaction();
+               } catch (StandbyStatusException | AdministrativeStateException e) {
+                       fail();
+               }
+               Mockito.doNothing().when(im).endTransaction();
+
+       }
+
+       @After
+       public void tearDown() {
+               File file = new File("nonExistFile.txt");
+               file.delete();
+//             systemProps.remove("com.sun.management.jmxremote.port");
+       }
+
+       @Test
+       public void testMain() {
+               try {   
+                       
+                       logParser.main(null);
+               } catch (Exception e) {
+                       //fail();
+               }
+       }
+
+       @Test
+       public void testCountLines() throws IOException {
+               String fileName = "LineTest.txt";
+               int returnValue = logParser.countLines(fileName);
+               
+               assertEquals(9, returnValue);
+       }
+       
+       @Test
+       public void testParseRemoteSystem() {
+               String line = "||org.openecomp.policy.pap.xacml.rest.XACMLPapServlet$Heartbeat.run(XACMLPapServlet.java:2801)||Heartbeat 'https://localhost:8081/pdp/' status='UP_TO_DATE'";
+               String returnValue = ParseLog.parseRemoteSystem(line);
+               assertEquals("localhost:8081", returnValue);
+       }
+
+       @Test
+       public void testGetPropertiesValue() {
+               config = new Properties();
+               config.put("RESOURCE_NAME", "logparser_pap01");
+               config.put("JDBC_DRIVER" ,"com.mysql.jdbc.Driver");
+               config.put("JDBC_URL", "jdbc:mysql://localhost:3306/");
+               config.put("JDBC_USER", "root");
+               config.put("JDBC_PASSWORD", "password");
+               config.put("JMX_URL", "service:jmx:rmi:///jndi/rmi://localhost:9998/jmxrmi");
+               config.put("SERVER", "password");
+               config.put("JDBC_PASSWORD", "https://localhost:9091/pap/");
+               config.put("LOGTYPE", "PAP");
+               config.put("LOGPATH", "C:\\Workspaces\\HealthCheck\\pap-rest.log");
+               config.put("PARSERLOGPATH", "IntegrityMonitor.log");
+               
+               Properties returnConfig = logParser.getPropertiesValue(configFile);
+
+               
+               assertEquals(config.get("RESOURCE_NAME"), returnConfig.get("RESOURCE_NAME"));   
+       }
+       
+       @Test
+       public void testGetPropertiesFail() {   
+               Properties returnValue = ParseLog.getPropertiesValue("nonExistFile");
+               
+               assertEquals(null, returnValue);        
+       }
+
+       @Test
+       public  void  testParseDate(){
+               String line = "2016-02-23 08:07:30";
+               Date returnValue = ParseLog.parseDate(line, "yyyy-MM-dd HH:mm:ss", false);
+               
+               assertEquals("Tue Feb 23 08:07:30 CST 2016", returnValue.toString());
+       }
+       
+       @Test
+       public  void  testParseDateFail(){
+               String line = "2016-02-23 08:07:30";
+               Date returnValue = ParseLog.parseDate(line, "yyyy-MM-dd HH:mm:ss", true);
+               
+               assertEquals(null, returnValue);
+       }
+       
+       @Test
+       public void testPullLastLineRead(){
+               
+               File file = new File("LineTest.txt");
+               String returnValue = null;
+               try {
+                       returnValue = ParseLog.PullLastLineRead(file).trim();
+               } catch (IOException e) {
+                       fail();
+               }               
+               assertEquals("12", returnValue);
+
+       }
+       
+       @Test
+       public void testPullLastLineReadNoFile(){
+               
+               File file = new File("nonExistFile.txt");
+               try {
+                       assertEquals(null, ParseLog.PullLastLineRead(file));
+               } catch (IOException e) {
+                       fail();
+               }
+       }
+       @Test
+       public void testPullLastLineReadFail(){
+               
+               File file = new File("LineTest2.txt");
+               try {
+                       assertEquals(null, ParseLog.PullLastLineRead(file));
+               } catch (IOException e) {
+                       fail();
+               }
+       }
+
+       @Test
+       public void testPullOutLogValues(){
+               //ERROR_VALUE
+               // Open the file
+               FileInputStream fstream;
+               try {
+                       fstream = new FileInputStream("LineTest.txt");
+                       BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
+                       String strLine = br.readLine();
+                       LogEntryObject retrunObject = ParseLog.pullOutLogValues(strLine, "ERROR");
+                       assertEquals("ERROR_VALUE", retrunObject.getDescription());
+                       br.close();
+               } catch (IOException e) {
+                       fail();
+               }       
+//             assert(true);
+       }
+       @Test
+       public void testPullOutLogValuesSecond(){
+               //ERROR_VALUE
+               // Open the file
+               FileInputStream fstream;
+               try {
+                       fstream = new FileInputStream("LineTest.txt");
+                       BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
+                       String strLine = br.readLine();
+                       strLine = br.readLine();
+                       LogEntryObject retrunObject = ParseLog.pullOutLogValues(strLine, "INFO");
+                       assertEquals(LOGTYPE.INFO, retrunObject.getLogType());
+                       br.close();
+               } catch (IOException e) {
+                       fail();
+               }       
+       }
+       
+       @Test
+       public void testPullOutLogValuesThird(){
+               //ERROR_VALUE
+               // Open the file
+               FileInputStream fstream;
+               try {
+                       int number = 3;
+                       fstream = new FileInputStream("LineTest.txt");
+                       BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
+                       String strLine = br.readLine();
+                       for (int i =0; i < number; i++){
+                               strLine = br.readLine();
+                       }
+                       LogEntryObject retrunObject = ParseLog.pullOutLogValues(strLine, "PAP");
+                       assertEquals(LOGTYPE.INFO, retrunObject.getLogType());
+                       br.close();
+               } catch (IOException e) {
+                       fail();
+               }       
+       }
+
+       @Test
+       public void testPullOutLogValuesFourth(){
+               // Open the file
+               FileInputStream fstream;
+               try {
+                       int number = 4;
+                       fstream = new FileInputStream("LineTest.txt");
+                       BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
+                       String strLine = br.readLine();
+                       for (int i =0; i < number; i++){
+                               strLine = br.readLine();
+                       }
+                       LogEntryObject retrunObject = ParseLog.pullOutLogValues(strLine, "PAP");
+                       assertEquals(LOGTYPE.INFO, retrunObject.getLogType());
+                       br.close();
+               } catch (IOException e) {
+                       fail();
+               }       
+       }
+       
+       @Test
+       public void testPullOutLogValuesFith(){
+               // Open the file
+               FileInputStream fstream;
+               try {
+                       int number = 5;
+                       fstream = new FileInputStream("LineTest.txt");
+                       BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
+                       String strLine = br.readLine();
+                       for (int i =0; i < number; i++){
+                               strLine = br.readLine();
+                       }
+                       LogEntryObject retrunObject = ParseLog.pullOutLogValues(strLine, "PyPDP");
+                       assertEquals(LOGTYPE.WARN, retrunObject.getLogType());
+                       br.close();
+               } catch (IOException e) {
+                       fail();
+               }       
+       }
+       
+       @Test
+       public void testPullOutLogValuesSixth(){
+               // Open the file
+               FileInputStream fstream;
+               try {
+                       int number = 6;
+                       fstream = new FileInputStream("LineTest.txt");
+                       BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
+                       String strLine = br.readLine();
+                       for (int i =0; i < number; i++){
+                               strLine = br.readLine();
+                       }
+                       LogEntryObject retrunObject = ParseLog.pullOutLogValues(strLine, "PyPDP");
+                       assertEquals(LOGTYPE.SEVERE, retrunObject.getLogType());
+                       br.close();
+               } catch (IOException e) {
+                       fail();
+               }       
+       }
+
+       @Test
+       public void testPullOutLogValuesSeven(){
+               // Open the file
+               FileInputStream fstream;
+               try {
+                       int number = 7;
+                       fstream = new FileInputStream("LineTest.txt");
+                       BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
+                       String strLine = br.readLine();
+                       for (int i =0; i < number; i++){
+                               strLine = br.readLine();
+                       }
+                       LogEntryObject retrunObject = ParseLog.pullOutLogValues(strLine, "Console");
+                       assertEquals(LOGTYPE.ERROR, retrunObject.getLogType());
+                       br.close();
+               } catch (IOException e) {
+                       fail();
+               }       
+       }
+       
+       @Test
+       public void testPullOutLogValuesEight(){
+               // Open the file
+               FileInputStream fstream;
+               try {
+                       int number = 8;
+                       fstream = new FileInputStream("LineTest.txt");
+                       BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
+                       String strLine = br.readLine();
+                       for (int i =0; i < number; i++){
+                               strLine = br.readLine();
+                       }
+                       LogEntryObject retrunObject = ParseLog.pullOutLogValues(strLine, "pap");
+                       assertEquals(LOGTYPE.WARN, retrunObject.getLogType());
+                       br.close();
+               } catch (IOException e) {
+                       fail();
+               }       
+       }
+       
+       @Test
+       public void testPullOutLogValuesNull(){
+               // Open the file
+               FileInputStream fstream;
+               LogEntryObject retrunObject = ParseLog.pullOutLogValues("", "Console");
+               assertEquals(null, retrunObject);
+       }
+       
+       @Test
+       public void testLogEntryObject(){
+               SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+               Date date = new Date();
+        
+               // Open the file
+               LogEntryObject logObject = new LogEntryObject();
+               logObject.setSystem("vm02");
+               logObject.setSystemType("pap");
+               logObject.setDate(date);
+               logObject.setRemote("remote");
+
+               assertEquals("vm02", logObject.getSystem());
+               assertEquals("pap", logObject.getSystemType());
+               assertEquals(date, logObject.getDate());
+               assertEquals("remote", logObject.getRemote());
+       }
+
+       @Test
+       public void testProcess(){
+               String line = "2015-04-01 09:13:44.947  DEBUG 17482 --- [nio-8480-exec-7] c.a.l.ecomp.policy.std.StdPolicyConfig   : config Retrieved ";
+       
+               im = Mockito.mock(IntegrityMonitor.class);
+               try {
+                       Mockito.doNothing().when(im).startTransaction();
+               } catch (StandbyStatusException | AdministrativeStateException e) {
+                       fail();
+               }
+               Mockito.doNothing().when(im).endTransaction();
+               ParseLog.process(line, "pap");
+       }
+}