package com.cloudera.flume.conf;
import static org.junit.Assert.assertEquals;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.junit.Test;
public static final Logger LOG = LoggerFactory.getLogger(TestParserErrorMessages.class);
@Test
try {
} catch (FlumeSpecException e) {
LOG.info(e.getMessage());
assertEquals("Lexer error at char '@' at line 1 char 1", e.getMessage());
}
}
@Test
try {
FlumeBuilder.buildSource("foo");
} catch (FlumeSpecException e) {
LOG.info(e.getMessage());
assertEquals("Invalid source: foo", e.getMessage());
}
}
@Test
try {
FlumeBuilder.buildSink(new Context(), "{nullDeco => stest}");
} catch (FlumeSpecException e) {
LOG.info(e.getMessage());
assertEquals("Invalid sink: stest", e.getMessage());
}
}
@Test
try {
FlumeBuilder.buildSink(new Context(), "{not(\"foo\") => stest}");
} catch (FlumeSpecException e) {
LOG.info(e.getMessage());
assertEquals("Invalid sink decorator: not( \"foo\" )", e.getMessage());
}
}
@Test
try {
FlumeBuilder.buildSink(new Context(), "null(\"foo\")");
} catch (FlumeSpecException e) {
LOG.info(e.getMessage());
assertEquals("usage: null", e.getMessage());
}
}
@Test
try {
FlumeBuilder.buildSink(new Context(), "{ delay(\"foo\") => null}");
} catch (FlumeSpecException e) {
LOG.info(e.getMessage());
assertEquals("Illegal number format: For input string: \"foo\"", e
.getMessage());
}
}
@Test
try {
FlumeBuilder.buildSink(new Context(), "< null ? null ? null>");
} catch (FlumeSpecException e) {
LOG.info(e.getMessage());
assertEquals("Only supports two retry nodes per failover expression", e
.getMessage());
}
try {
FlumeBuilder.buildSink(new Context(),
"{ nullDeco => nullDeco => null }");
} catch (FlumeSpecException e) {
LOG.info(e.getMessage());
assertEquals(
"Parser error: unexpected '=>' at position 24 line 1: '{ nullDeco => nullDeco => null }'",
e.getMessage());
}
}
}