/*******************************************************************************
* This file is part of OpenNMS(R).
*
* Copyright (C) 2010-2011 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2011 The OpenNMS Group, Inc.
*
* OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.
*
* OpenNMS(R) is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* OpenNMS(R) is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenNMS(R). If not, see:
* http://www.gnu.org/licenses/
*
* For more information contact:
* OpenNMS(R) Licensing <license@opennms.org>
* http://www.opennms.org/
* http://www.opennms.com/
*******************************************************************************/
package org.opennms.util.ilr;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.junit.Test;
import static org.junit.Assert.*;
public class RegularExpressionTest {
@Test
public void testParseTimestamp (){
String regex = "\\s*(\\d+)-(\\d+)-(\\d+)\\s*(\\d+):(\\d+):(\\d+),(\\d+)";
Pattern timestamp = Pattern.compile(regex);
Matcher timestampMatcher = timestamp.matcher("2010-06-01 13:53:41,062 DEBUG [CollectdScheduler-50 Pool-fiber0] Collectd: scheduleExistingInterfaces: begin");
assertEquals(false,timestampMatcher.matches());
timestampMatcher.reset();
assertEquals(true,timestampMatcher.find());
}
@Test
public void testSaveTimestamp() {
String regex = "\\s*(\\d+)-(\\d+)-(\\d+)\\s*(\\d+):(\\d+):(\\d+),(\\d+)";
String sucess = "";
String fail = "failure";
Pattern timestamp = Pattern.compile(regex);
Matcher timestampMatcher = timestamp.matcher("2010-06-01 13:53:41,062 DEBUG [CollectdScheduler-50 Pool-fiber0] Collectd: scheduleExistingInterfaces: begin");
if (timestampMatcher.find()){
sucess += timestampMatcher.group();
}else {
sucess += fail;
}
assertEquals("2010-06-01 13:53:41,062", sucess);
}
@Test
public void testSeparateDate () {
String regex = "\\s*(\\d+)-(\\d+)-(\\d+)\\s*(\\d+):(\\d+):(\\d+),(\\d+)";
String sucess = "";
String fail = "failure";
Pattern timestamp = Pattern.compile(regex);
Matcher timestampMatcher = timestamp.matcher("2010-06-01 13:53:41,062 DEBUG [CollectdScheduler-50 Pool-fiber0] Collectd: scheduleExistingInterfaces: begin");
if (timestampMatcher.find()){
sucess += timestampMatcher.group();
}else {
sucess += fail;
}
assertEquals("2010-06-01 13:53:41,062", sucess);
assertEquals(timestampMatcher.group(1), "2010");
assertEquals(timestampMatcher.group(2), "06");
assertEquals(timestampMatcher.group(3), "01");
assertEquals(timestampMatcher.group(4), "13");
assertEquals(timestampMatcher.group(5), "53");
assertEquals(timestampMatcher.group(6), "41");
assertEquals(timestampMatcher.group(7), "062");
}
@Test
public void testParseType (){
String regex = "\\s*(\\D+)";
Pattern type = Pattern.compile(regex);
Matcher typeMatcher = type.matcher("2010-06-01 13:53:41,062 DEBUG [CollectdScheduler-50 Pool-fiber0] Collectd: scheduleExistingInterfaces: begin");
assertEquals(false,typeMatcher.matches());
typeMatcher.reset();
assertEquals(true,typeMatcher.find());
}
@Test
public void testSaveType() {
String regex = "\\s(\\D+)\\s";
String sucess = "";
String fail = "failure";
Pattern type = Pattern.compile(regex);
Matcher typeMatcher = type.matcher("2010-06-01 13:53:41,062 DEBUG [CollectdScheduler-50 Pool-fiber0] Collectd: scheduleExistingInterfaces: begin");
if (typeMatcher.find()){
sucess += typeMatcher.group();
}else {
sucess += fail;
}
assertEquals(" DEBUG ", sucess);
}
@Test
public void testParseThread (){
String regex = "\\s*\\[(\\D+)-(\\d+)\\s+(\\D+)-(\\D+)\\d\\]";
Pattern thread = Pattern.compile(regex);
Matcher threadMatcher = thread.matcher("2010-06-01 13:53:41,062 DEBUG [CollectdScheduler-50 Pool-fiber0] Collectd: scheduleExistingInterfaces: begin");
assertEquals(false,threadMatcher.matches());
threadMatcher.reset();
assertEquals(true,threadMatcher.find());
}
@Test
public void testSaveThread() {
String regex = "\\[(\\D+)-(\\d+)\\s+(\\D+)-(\\D+)\\d\\]";
String sucess = "";
String fail = "failure";
Pattern thread = Pattern.compile(regex);
Matcher threadMatcher = thread.matcher("2010-06-01 13:53:41,062 DEBUG [CollectdScheduler-50 Pool-fiber0] Collectd: scheduleExistingInterfaces: begin");
if (threadMatcher.find()){
sucess += threadMatcher.group();
}else {
sucess += fail;
}
assertEquals("[CollectdScheduler-50 Pool-fiber0]", sucess);
}
@Test
public void testParseEvent (){
String regex = "\\s*(\\D+):(\\D+):\\s+(\\D+)";
Pattern event = Pattern.compile(regex);
Matcher eventMatcher = event.matcher("2010-06-01 13:53:41,062 DEBUG [CollectdScheduler-50 Pool-fiber0] Collectd: scheduleExistingInterfaces: begin");
assertEquals(false,eventMatcher.matches());
eventMatcher.reset();
assertEquals(true,eventMatcher.find());
}
@Test
public void testSaveEvent() {
String regex = "\\s(\\D+):(\\D+):\\s+(\\D+)";
String sucess = "";
String fail = "failure";
Pattern event = Pattern.compile(regex);
Matcher eventMatcher = event.matcher("2010-06-01 13:53:41,062 DEBUG [CollectdScheduler-50 Pool-fiber0] Collectd: scheduleExistingInterfaces: begin");
if (eventMatcher.find()){
sucess += eventMatcher.group();
}else {
sucess += fail;
}
assertEquals(" Collectd: scheduleExistingInterfaces: begin", sucess);
}
}