use of org.graylog2.streams.StreamMock in project graylog2-server by Graylog2.
the class StreamRouterEngineTest method testSmallerMatch.
@Test
public void testSmallerMatch() throws Exception {
final StreamMock stream = getStreamMock("test");
final StreamRuleMock rule = new StreamRuleMock(ImmutableMap.of("_id", new ObjectId(), "field", "testfield", "value", "5", "type", StreamRuleType.SMALLER.toInteger(), "stream_id", stream.getId()));
stream.setStreamRules(Lists.newArrayList(rule));
final StreamRouterEngine engine = newEngine(Lists.newArrayList(stream));
final Message message = getMessage();
// With bigger value.
message.addField("testfield", "5");
assertTrue(engine.match(message).isEmpty());
// With smaller value.
message.addField("testfield", "2");
assertEquals(Lists.newArrayList(stream), engine.match(message));
}
use of org.graylog2.streams.StreamMock in project graylog2-server by Graylog2.
the class StreamRouterEngineTest method testContainsMatch.
@Test
public void testContainsMatch() throws Exception {
final StreamMock stream = getStreamMock("test");
final StreamRuleMock rule = new StreamRuleMock(ImmutableMap.of("_id", new ObjectId(), "field", "testfield", "value", "testvalue", "type", StreamRuleType.CONTAINS.toInteger(), "stream_id", stream.getId()));
stream.setStreamRules(Lists.newArrayList(rule));
final StreamRouterEngine engine = newEngine(Lists.newArrayList(stream));
final Message message = getMessage();
// Without the field
assertTrue(engine.match(message).isEmpty());
// With wrong value for field.
message.addField("testfield", "no-foobar");
assertTrue(engine.match(message).isEmpty());
// With matching value for field.
message.addField("testfield", "hello testvalue");
assertEquals(Lists.newArrayList(stream), engine.match(message));
}
use of org.graylog2.streams.StreamMock in project graylog2-server by Graylog2.
the class StreamRouterEngineTest method testGetFingerprint.
@Test
public void testGetFingerprint() {
final StreamMock stream1 = getStreamMock("test");
final StreamRuleMock rule1 = new StreamRuleMock(ImmutableMap.of("_id", new ObjectId(), "field", "testfield1", "type", StreamRuleType.PRESENCE.toInteger(), "stream_id", stream1.getId()));
final StreamRuleMock rule2 = new StreamRuleMock(ImmutableMap.of("_id", new ObjectId(), "field", "testfield2", "value", "^test", "type", StreamRuleType.REGEX.toInteger(), "stream_id", stream1.getId()));
stream1.setStreamRules(Lists.newArrayList(rule1, rule2));
final StreamMock stream2 = getStreamMock("test");
final StreamRuleMock rule3 = new StreamRuleMock(ImmutableMap.of("_id", new ObjectId(), "field", "testfield", "value", "^test", "type", StreamRuleType.REGEX.toInteger(), "stream_id", stream2.getId()));
stream2.setStreamRules(Lists.newArrayList(rule3));
final StreamRouterEngine engine1 = newEngine(Lists.newArrayList(stream1));
final StreamRouterEngine engine2 = newEngine(Lists.newArrayList(stream1));
final StreamRouterEngine engine3 = newEngine(Lists.newArrayList(stream2));
assertEquals(engine1.getFingerprint(), engine2.getFingerprint());
assertNotEquals(engine1.getFingerprint(), engine3.getFingerprint());
}
use of org.graylog2.streams.StreamMock in project graylog2-server by Graylog2.
the class StreamRouterEngineTest method testRemoveFromAllMessages.
@Test
public void testRemoveFromAllMessages() throws Exception {
final StreamMock stream = getStreamMock("test");
final StreamRuleMock rule = new StreamRuleMock(ImmutableMap.of("_id", new ObjectId(), "field", "testfield", "type", StreamRuleType.PRESENCE.toInteger(), "stream_id", stream.getId()));
stream.setRemoveMatchesFromDefaultStream(true);
stream.setStreamRules(Collections.singletonList(rule));
final StreamRouterEngine engine = newEngine(Collections.singletonList(stream));
final Message message = getMessage();
message.addStream(defaultStream);
assertThat(message.getStreams()).containsExactly(defaultStream);
// Without testfield in the message.
assertThat(engine.match(message)).isEmpty();
// With field in the message.
message.addField("testfield", "testvalue");
assertThat(engine.match(message)).containsExactly(stream);
assertThat(message.getStreams()).doesNotContain(defaultStream);
}
use of org.graylog2.streams.StreamMock in project graylog2-server by Graylog2.
the class ContentPackServiceTest method resolveEntitiesWithTransitiveDependencies.
@Test
public void resolveEntitiesWithTransitiveDependencies() throws NotFoundException {
final StreamMock streamMock = new StreamMock(ImmutableMap.of("_id", "stream-1234", StreamImpl.FIELD_TITLE, "Stream Title")) {
@Override
public Set<Output> getOutputs() {
return Collections.singleton(OutputImpl.create("output-1234", "Output Title", "org.example.outputs.SomeOutput", "admin", Collections.emptyMap(), new Date(0L), null));
}
};
when(streamService.load("stream-1234")).thenReturn(streamMock);
final ImmutableSet<EntityDescriptor> unresolvedEntities = ImmutableSet.of(EntityDescriptor.create("stream-1234", ModelTypes.STREAM_V1));
final Set<EntityDescriptor> resolvedEntities = contentPackService.resolveEntities(unresolvedEntities);
assertThat(resolvedEntities).containsOnly(EntityDescriptor.create("stream-1234", ModelTypes.STREAM_V1), EntityDescriptor.create("output-1234", ModelTypes.OUTPUT_V1));
}
Aggregations