From 8ce0c7cb58c47eeeca3367aa6e610edcc4fe35b6 Mon Sep 17 00:00:00 2001 From: Dennis Oelkers Date: Fri, 18 Dec 2015 15:57:58 +0100 Subject: [PATCH] Test proper deserialization of blacklist filters. Adding a test for the case described in #1641, as closed in e20fe76f726a39f005e008ef2f7c54477da254e8. --- .../filters/FilterServiceImplTest.java | 47 +++++++++++++++++++ .../properDeserializationOfSubclasses.json | 14 ++++++ 2 files changed, 61 insertions(+) create mode 100644 graylog2-server/src/test/java/org/graylog2/filters/FilterServiceImplTest.java create mode 100644 graylog2-server/src/test/resources/org/graylog2/filters/properDeserializationOfSubclasses.json diff --git a/graylog2-server/src/test/java/org/graylog2/filters/FilterServiceImplTest.java b/graylog2-server/src/test/java/org/graylog2/filters/FilterServiceImplTest.java new file mode 100644 index 000000000000..d80e684ffb48 --- /dev/null +++ b/graylog2-server/src/test/java/org/graylog2/filters/FilterServiceImplTest.java @@ -0,0 +1,47 @@ +package org.graylog2.filters; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.lordofthejars.nosqlunit.annotation.UsingDataSet; +import com.lordofthejars.nosqlunit.core.LoadStrategyEnum; +import com.lordofthejars.nosqlunit.mongodb.InMemoryMongoDb; +import org.graylog2.bindings.providers.MongoJackObjectMapperProvider; +import org.graylog2.bindings.providers.ServerObjectMapperProvider; +import org.graylog2.database.MongoConnectionRule; +import org.graylog2.filters.blacklist.BlacklistPatternCondition; +import org.graylog2.filters.blacklist.FilterDescription; +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; + +import java.util.Set; + +import static com.lordofthejars.nosqlunit.mongodb.InMemoryMongoDb.InMemoryMongoRuleBuilder.newInMemoryMongoDbRule; +import static org.assertj.core.api.Assertions.*; + +public class FilterServiceImplTest { + @ClassRule + public static final InMemoryMongoDb IN_MEMORY_MONGO_DB = newInMemoryMongoDbRule().build(); + + @Rule + public MongoConnectionRule mongoRule = MongoConnectionRule.build("test"); + + private FilterService filterService; + + @Before + public void setUp() throws Exception { + final ObjectMapper objectMapper = new ServerObjectMapperProvider().get(); + this.filterService = new FilterServiceImpl(mongoRule.getMongoConnection(), new MongoJackObjectMapperProvider(objectMapper)); + } + + @Test + @UsingDataSet(locations = "properDeserializationOfSubclasses.json", loadStrategy = LoadStrategyEnum.CLEAN_INSERT) + public void testProperDeserializationOfSubclasses() throws Exception { + final Set filterDescriptionSet = filterService.loadAll(); + assertThat(filterDescriptionSet).isNotNull().hasSize(1); + + final FilterDescription filterDescription = filterDescriptionSet.iterator().next(); + assertThat(filterDescription).isNotNull(); + assertThat(filterDescription instanceof BlacklistPatternCondition); + } +} \ No newline at end of file diff --git a/graylog2-server/src/test/resources/org/graylog2/filters/properDeserializationOfSubclasses.json b/graylog2-server/src/test/resources/org/graylog2/filters/properDeserializationOfSubclasses.json new file mode 100644 index 000000000000..b306c506ceda --- /dev/null +++ b/graylog2-server/src/test/resources/org/graylog2/filters/properDeserializationOfSubclasses.json @@ -0,0 +1,14 @@ +{ + "filters": [ + { + "_id": {"$oid": "54e9deadbeefdeadbeefaffe"}, + "type" : "regex", + "creator_user_id" : "admin", + "created_at" : "2015-12-18T12:54:03.911Z", + "name" : "Testfilter", + "description" : "A basic Regex filter for testing", + "field_name" : "message", + "pattern" : "posts" + } + ] +} \ No newline at end of file