private void processAndVerifyFailure(Record input) { collector.reset(); startSession(); assertEquals(1, collector.getNumStartEvents()); assertFalse(morphline.process(input)); assertEquals(0, collector.getRecords().size()); }
@Test public void testGrokSeparatedValues() throws Exception { String msg = "hello\tworld\tfoo"; Pattern pattern = Pattern.compile("(?<word>.+?)(\\t|\\z)"); Matcher matcher = pattern.matcher(msg); List<String> results = Lists.newArrayList(); while (matcher.find()) { //System.out.println("match:'" + matcher.group(1) + "'"); results.add(matcher.group(1)); } assertEquals(Arrays.asList("hello", "world", "foo"), results); }
private void testGenerateUUID(String suffix) throws Exception { morphline = createMorphline("test-morphlines/generateUUID" + suffix); Record record = new Record(); collector.reset(); startSession(); assertEquals(1, collector.getNumStartEvents()); assertTrue(morphline.process(record)); Record actual = collector.getFirstRecord(); assertEquals(1, actual.get("id").size()); String uuid = (String) actual.getFirstValue("id"); assertEquals(36, uuid.length()); }
private void processAndVerifySuccess(Record input, Multimap... expectedMaps) { collector.reset(); startSession(); assertEquals(1, collector.getNumStartEvents()); assertTrue(morphline.process(input)); Iterator<Record> iter = collector.getRecords().iterator(); for (Multimap expected : expectedMaps) { assertTrue(iter.hasNext()); Record record = iter.next(); assertEquals(expected, record.getFields()); } assertFalse(iter.hasNext()); }
@Test public void testNotWithTrue() throws Exception { morphline = createMorphline("test-morphlines/notWithTrue"); Record record = createBasicRecord(); startSession(); assertEquals(1, collector.getNumStartEvents()); assertFalse(morphline.process(record)); assertEquals(Lists.newArrayList(), collector.getRecords()); }
@Test public void testNotWithFalseWithContinuation() throws Exception { morphline = createMorphline("test-morphlines/notWithFalseAndContinuation"); Record record = createBasicRecord(); startSession(); assertEquals(1, collector.getNumStartEvents()); assertTrue(morphline.process(record)); assertEquals(record, collector.getFirstRecord()); assertSame(record, collector.getFirstRecord()); assertEquals("touched", collector.getFirstRecord().getFirstValue("state")); }
@Test public void testHeadUnlimited() throws Exception { morphline = createMorphline("test-morphlines/headUnlimited"); int size = 5; for (int i = 0; i < size; i++) { assertTrue(morphline.process(new Record())); } assertEquals(size, collector.getRecords().size()); }
@Test public void testHead() throws Exception { morphline = createMorphline("test-morphlines/head"); int size = 5; for (int i = 0; i < size; i++) { assertTrue(morphline.process(new Record())); } assertEquals(3, collector.getRecords().size()); }
@Test public void testSampleWithSeed() throws Exception { morphline = createMorphline("test-morphlines/sampleWithSeed"); int size = 10; for (int i = 0; i < size; i++) { assertTrue(morphline.process(new Record())); } assertEquals(9, collector.getRecords().size()); }
@Test public void testSampleWithProbabilityOne() throws Exception { morphline = createMorphline("test-morphlines/sampleWithProbabilityOne"); int size = 10; for (int i = 0; i < size; i++) { assertTrue(morphline.process(new Record())); } assertEquals(size, collector.getRecords().size()); }
private void processAndVerifySuccess(Record input, Record expected, boolean isSame) { collector.reset(); startSession(); assertEquals(1, collector.getNumStartEvents()); assertTrue(morphline.process(input)); assertEquals(expected, collector.getFirstRecord()); if (isSame) { assertSame(input, collector.getFirstRecord()); } else { assertNotSame(input, collector.getFirstRecord()); } }
@Test public void testNotWithFalse() throws Exception { morphline = createMorphline("test-morphlines/notWithFalse"); Record record = createBasicRecord(); startSession(); assertEquals(1, collector.getNumStartEvents()); assertTrue(morphline.process(record)); assertEquals(record, collector.getFirstRecord()); assertSame(record, collector.getFirstRecord()); }
@Test public void testIfThenElseWithElseEmpty() throws Exception { morphline = createMorphline("test-morphlines/ifThenElseWithElseEmpty"); Record record = createBasicRecord(); processAndVerifySuccess(record, record); assertEquals("init1", collector.getFirstRecord().getFirstValue("state")); }
@Test public void testIfThenElseWithThenEmpty() throws Exception { morphline = createMorphline("test-morphlines/ifThenElseWithThenEmpty"); Record record = createBasicRecord(); processAndVerifySuccess(record, record); assertEquals("init1", collector.getFirstRecord().getFirstValue("state")); }
@Test public void testIfThenElseWithElse() throws Exception { morphline = createMorphline("test-morphlines/ifThenElseWithElse"); Record record = createBasicRecord(); processAndVerifySuccess(record, record); assertEquals("else1", collector.getFirstRecord().getFirstValue("state")); }
@Test public void testIfThenElseWithThenAndNot() throws Exception { morphline = createMorphline("test-morphlines/ifThenElseWithThenAndNot"); Record record = createBasicRecord(); processAndVerifySuccess(record, record); assertEquals("then1", collector.getFirstRecord().getFirstValue("state")); }
@Test public void testIfThenElseWithThen() throws Exception { morphline = createMorphline("test-morphlines/ifThenElseWithThen"); Record record = createBasicRecord(); processAndVerifySuccess(record, record); assertEquals("then1", collector.getFirstRecord().getFirstValue("state")); }
@Test public void testToByteArray() throws Exception { morphline = createMorphline("test-morphlines/toByteArray"); Record record = new Record(); record.put("first_name", "Nadja"); collector.reset(); startSession(); assertEquals(1, collector.getNumStartEvents()); assertTrue(morphline.process(record)); assertEquals(1, collector.getFirstRecord().getFields().size()); byte[] expected = "Nadja".getBytes("UTF-8"); assertArrayEquals(expected, (byte[]) collector.getFirstRecord().getFirstValue("first_name")); assertSame(record, collector.getFirstRecord()); }
@Test public void testDecodeBase64() throws Exception { morphline = createMorphline("test-morphlines/decodeBase64"); Record record = new Record(); record.put("data", "SGVsbG8gV29ybGQ="); startSession(); assertEquals(1, collector.getNumStartEvents()); assertTrue(morphline.process(record)); byte[] actual = (byte[]) collector.getFirstRecord().getFirstValue("data"); assertArrayEquals("Hello World".getBytes(Charsets.UTF_8), actual); assertSame(record, collector.getFirstRecord()); }
@Test public void testGrokWithMultipleGroupsWithSameName() throws Exception { morphline = createMorphline("test-morphlines/grokWithMultipleGroupsWithSameName"); Record record = new Record(); record.put(Fields.MESSAGE, "123 456"); assertTrue(morphline.process(record)); Record expected = new Record(); expected.put(Fields.MESSAGE, "123 456"); expected.put("syslog_pri", "123"); expected.put("syslog_pri", "456"); assertEquals(expected, collector.getFirstRecord()); assertNotSame(record, collector.getFirstRecord()); }