Search in sources :

Example 6 with StreamMock

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));
}
Also used : Message(org.graylog2.plugin.Message) ObjectId(org.bson.types.ObjectId) StreamRuleMock(org.graylog2.streams.matchers.StreamRuleMock) Test(org.junit.Test)

Example 7 with StreamMock

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));
}
Also used : Message(org.graylog2.plugin.Message) ObjectId(org.bson.types.ObjectId) StreamRuleMock(org.graylog2.streams.matchers.StreamRuleMock) Test(org.junit.Test)

Example 8 with StreamMock

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());
}
Also used : ObjectId(org.bson.types.ObjectId) StreamRuleMock(org.graylog2.streams.matchers.StreamRuleMock) Test(org.junit.Test)

Example 9 with StreamMock

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);
}
Also used : Message(org.graylog2.plugin.Message) ObjectId(org.bson.types.ObjectId) StreamRuleMock(org.graylog2.streams.matchers.StreamRuleMock) Test(org.junit.Test)

Example 10 with StreamMock

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));
}
Also used : EntityDescriptor(org.graylog2.contentpacks.model.entities.EntityDescriptor) NativeEntityDescriptor(org.graylog2.contentpacks.model.entities.NativeEntityDescriptor) StreamMock(org.graylog2.streams.StreamMock) MessageOutput(org.graylog2.plugin.outputs.MessageOutput) Output(org.graylog2.plugin.streams.Output) Date(java.util.Date) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)22 Message (org.graylog2.plugin.Message)16 ObjectId (org.bson.types.ObjectId)15 StreamRuleMock (org.graylog2.streams.matchers.StreamRuleMock)15 StreamMock (org.graylog2.streams.StreamMock)7 Stream (org.graylog2.plugin.streams.Stream)5 Configuration (org.graylog2.plugin.configuration.Configuration)4 DateTime (org.joda.time.DateTime)4 AbstractAlertCondition (org.graylog2.alerts.AbstractAlertCondition)3 DummyAlertCondition (org.graylog2.alerts.types.DummyAlertCondition)3 AlertCondition (org.graylog2.plugin.alarms.AlertCondition)3 MockResponse (okhttp3.mockwebserver.MockResponse)2 RecordedRequest (okhttp3.mockwebserver.RecordedRequest)2 EntityDescriptor (org.graylog2.contentpacks.model.entities.EntityDescriptor)2 NativeEntityDescriptor (org.graylog2.contentpacks.model.entities.NativeEntityDescriptor)2 StreamRule (org.graylog2.plugin.streams.StreamRule)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 Date (java.util.Date)1 Event (org.graylog.events.event.Event)1 EventWithContext (org.graylog.events.event.EventWithContext)1