package org.araqne.log.api; import static org.junit.Assert.*; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Test; public class LastPositionHelperTest { @Test public void readV1LastPositionTest() { List<String> lines = new ArrayList<String>(); lines.add("D:\\user\\test\\test.lastpos 123156"); lines.add("/utm/log/test.lastpos 0"); Map<String, LastPosition> lastPositions = LastPositionHelper.readLastPosition(lines); assertNotNull(lastPositions.get("D:\\user\\test\\test.lastpos")); assertNotNull(lastPositions.get("/utm/log/test.lastpos")); // window LastPosition position = lastPositions.get("D:\\user\\test\\test.lastpos"); assertEquals("D:\\user\\test\\test.lastpos", position.getPath()); assertEquals(123156l, position.getPosition()); assertNotNull(position.getLastSeen()); // linux position = lastPositions.get("/utm/log/test.lastpos"); assertEquals("/utm/log/test.lastpos", position.getPath()); assertEquals(0, position.getPosition()); assertNotNull(position.getLastSeen()); } @Test public void readV2LastPositionTest() { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHH:mm:ss"); List<String> lines = new ArrayList<String>(); lines.add("ARAQNE_LAST_POS_VER2"); lines.add("D:\\user\\test\\test.lastpos 123156 2013112817:44:00"); lines.add("/utm/log/test.lastpos 0 -"); lines.add("END_FILE"); Map<String, LastPosition> lastPositions = LastPositionHelper.readLastPosition(lines); assertNotNull(lastPositions.get("D:\\user\\test\\test.lastpos")); assertNotNull(lastPositions.get("/utm/log/test.lastpos")); // window LastPosition position = lastPositions.get("D:\\user\\test\\test.lastpos"); assertEquals("D:\\user\\test\\test.lastpos", position.getPath()); assertEquals(123156l, position.getPosition()); assertEquals("2013112817:44:00", sdf.format(position.getLastSeen())); // linux position = lastPositions.get("/utm/log/test.lastpos"); assertEquals("/utm/log/test.lastpos", position.getPath()); assertEquals(0, position.getPosition()); assertNotNull(position.getLastSeen()); } @Test public void writeLastPositionTest() { Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHH:mm:ss"); Map<String, LastPosition> lastPositions = new HashMap<String, LastPosition>(); LastPosition position1 = new LastPosition("C:\\Windows\\window.lastpos", 123456l, now); LastPosition position2 = new LastPosition("/usr/tester/linux.lastpos"); lastPositions.put(position1.getPath(), position1); lastPositions.put(position2.getPath(), position2); List<String> lines = LastPositionHelper.parseV2Lines(lastPositions); assertEquals(4, lines.size()); assertEquals("ARAQNE_LAST_POS_VER2", lines.get(0)); if (lines.get(1).startsWith("C")) { assertEquals("C:\\Windows\\window.lastpos 123456 " + sdf.format(now), lines.get(1)); assertEquals("/usr/tester/linux.lastpos 0 -", lines.get(2)); } else { assertEquals("/usr/tester/linux.lastpos 0 -", lines.get(1)); assertEquals("C:\\Windows\\window.lastpos 123456 " + sdf.format(now), lines.get(2)); } assertEquals("END_FILE", lines.get(3)); } }