/*
* Copyright 2014 Eediom Inc.
*
* 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.
*/
package org.araqne.logparser.syslog.riorey;
import static org.junit.Assert.assertEquals;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
/**
* @author kyun
*/
public class RioreySysLogParserTest {
@Test
public void testParser() {
String line = "<systemEntry host=\"172.22.7.11\" serial=\"RRPXU211BB101964\" timestamp=\"2014-03-21T00:20:18Z\">"
+ "<memory><total>8229504</total><free>1196564</free></memory></systemEntry>";
RioreySyslogParser parser = new RioreySyslogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("172.22.7.11", m.get("host"));
assertEquals("RRPXU211BB101964", m.get("serial"));
assertEquals(8229504, m.get("total"));
assertEquals(1196564, m.get("free"));
Date time = (Date) m.get("timestamp");
Calendar c = Calendar.getInstance();
c.setTime(time);
assertEquals(2014, c.get(Calendar.YEAR));
assertEquals(2, c.get(Calendar.MONTH));
assertEquals(21, c.get(Calendar.DAY_OF_MONTH));
assertEquals(00, c.get(Calendar.HOUR_OF_DAY));
assertEquals(20, c.get(Calendar.MINUTE));
assertEquals(18, c.get(Calendar.SECOND));
}
@Test
public void testParser2() {
String line = "<systemEntry host=\"172.22.7.11\" serial=\"RRPXU211BB101964\" timestamp=\"2014-03-21T00:20:18Z\"><CPU><usage>6.0911016</usage></CPU></systemEntry>";
RioreySyslogParser parser = new RioreySyslogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("172.22.7.11", m.get("host"));
assertEquals("RRPXU211BB101964", m.get("serial"));
assertEquals("6.0911016", m.get("usage"));
Date time = (Date) m.get("timestamp");
Calendar c = Calendar.getInstance();
c.setTime(time);
assertEquals(2014, c.get(Calendar.YEAR));
assertEquals(2, c.get(Calendar.MONTH));
assertEquals(21, c.get(Calendar.DAY_OF_MONTH));
assertEquals(00, c.get(Calendar.HOUR_OF_DAY));
assertEquals(20, c.get(Calendar.MINUTE));
assertEquals(18, c.get(Calendar.SECOND));
}
@Test
public void testParser3() {
String line = "<systemEntry host=\"172.22.7.11\" serial=\"RRPXU211BB101964\" timestamp=\"2014-03-21T00:15:11Z\">"
+ "<storage><main><total>524288</total><free>207032</free></main><secondary><total>239374</total><free>206133</free></secondary></storage></systemEntry>";
RioreySyslogParser parser = new RioreySyslogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("172.22.7.11", m.get("host"));
assertEquals("RRPXU211BB101964", m.get("serial"));
assertEquals(524288, m.get("main_total"));
assertEquals(207032, m.get("main_free"));
assertEquals(239374, m.get("secondary_total"));
assertEquals(206133, m.get("secondary_free"));
Date time = (Date) m.get("timestamp");
Calendar c = Calendar.getInstance();
c.setTime(time);
assertEquals(2014, c.get(Calendar.YEAR));
assertEquals(2, c.get(Calendar.MONTH));
assertEquals(21, c.get(Calendar.DAY_OF_MONTH));
assertEquals(00, c.get(Calendar.HOUR_OF_DAY));
assertEquals(15, c.get(Calendar.MINUTE));
assertEquals(11, c.get(Calendar.SECOND));
}
@Test
public void testParser4() {
String line = "<?xml version=\"1.0\" ?><systemEntryList><systemEntry host=\"172.22.7.10\" serial=\"RRPXU211BC102030\" "
+ "timestamp=\"2014-03-12T21:11:51Z\"><CPU><usage>7.9439564</usage></CPU></systemEntry>";
RioreySyslogParser parser = new RioreySyslogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("172.22.7.10", m.get("host"));
assertEquals("RRPXU211BC102030", m.get("serial"));
assertEquals("7.9439564", m.get("usage"));
Date time = (Date) m.get("timestamp");
Calendar c = Calendar.getInstance();
c.setTime(time);
assertEquals(2014, c.get(Calendar.YEAR));
assertEquals(2, c.get(Calendar.MONTH));
assertEquals(12, c.get(Calendar.DAY_OF_MONTH));
assertEquals(21, c.get(Calendar.HOUR_OF_DAY));
assertEquals(11, c.get(Calendar.MINUTE));
assertEquals(51, c.get(Calendar.SECOND));
}
@Test
public void testParser5() {
String line = "<systemEntry host=\"172.22.7.10\" serial=\"RRPXU211BC102030\" timestamp=\"2014-03-12T21:11:51Z\">"
+ "<hardware><fan name=\"Fan_1\"><speed>4556</speed></fan><fan name=\"Fan_2\"><speed>4503</speed></fan>"
+ "<fan name=\"Fan_3\"><speed>4448</speed></fan><temperature name=\"CPU_1\"><temp>35</temp></temperature>"
+ "<temperature name=\"CPU_2\"><temp>-128</temp></temperature><temperature name=\"System\"><temp>25</temp></temperature></hardware></systemEntry>";
RioreySyslogParser parser = new RioreySyslogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("172.22.7.10", m.get("host"));
assertEquals("RRPXU211BC102030", m.get("serial"));
assertEquals(4556, m.get("fan_1_speed"));
assertEquals(35, m.get("cpu_1_temp"));
assertEquals(-128, m.get("cpu_2_temp"));
assertEquals(25, m.get("system_temp"));
Date time = (Date) m.get("timestamp");
Calendar c = Calendar.getInstance();
c.setTime(time);
assertEquals(2014, c.get(Calendar.YEAR));
assertEquals(2, c.get(Calendar.MONTH));
assertEquals(12, c.get(Calendar.DAY_OF_MONTH));
assertEquals(21, c.get(Calendar.HOUR_OF_DAY));
assertEquals(11, c.get(Calendar.MINUTE));
assertEquals(51, c.get(Calendar.SECOND));
}
private Map<String, Object> line(String line) {
Map<String, Object> m = new HashMap<String, Object>();
m.put("line", line);
return m;
}
}