public static void MaterializeCreatesListFromValidJson()
        {
            const string expectedKey = "some key";

            // Materializer should be able to handle inefficient terms + terms_stats combination
            var facets = JObject.Parse(
                "{ \"GroupKey\": { \"_type\": \"filter\", \"count\": 77 }," +
                " \"unitsInStock\": { \"_type\": \"statistical\", \"count\": 77, \"total\": 3119.0, \"max\": 125.0 } }");

            var materializer = new ListTermlessFacetsElasticMaterializer(defaultMaterializer, typeof(AggregateRow), expectedKey);

            var actual = materializer.Materialize(new ElasticResponse {
                facets = facets
            });

            var actualList = Assert.IsType <List <AggregateRow> >(actual);

            Assert.Single(actualList);

            var statisticalRow = Assert.IsType <AggregateStatisticalRow>(actualList[0]);

            Assert.Equal(expectedKey, statisticalRow.Key);
            Assert.Equal(77, statisticalRow.GetValue("GroupKey", "count", typeof(int)));
            Assert.Equal(3119.0d, statisticalRow.GetValue("unitsInStock", "total", typeof(double)));
            Assert.Equal(125.0d, statisticalRow.GetValue("unitsInStock", "max", typeof(double)));
        }
        public static void ConstructorSetsElementType()
        {
            var expectedElementType = typeof(SampleClass);

            var materializer = new ListTermlessFacetsElasticMaterializer(defaultMaterializer, expectedElementType, "hello");

            Assert.Same(expectedElementType, materializer.ElementType);
        }
        public static void ConstructorSetsElementType()
        {
            var expectedElementType = typeof(SampleClass);

            var materializer = new ListTermlessFacetsElasticMaterializer(defaultMaterializer, expectedElementType, "hello");

            Assert.Same(expectedElementType, materializer.ElementType);
        }
        public static void MaterializeCreatesEmptyListIfFacetsIsEmpty()
        {
            var materializer = new ListTermlessFacetsElasticMaterializer(defaultMaterializer, typeof(SampleClass), "");

            var actual = materializer.Materialize(new ElasticResponse { facets = new JObject() });

            var actualList = Assert.IsType<List<SampleClass>>(actual);
            Assert.Empty(actualList);
        }
        public void MaterializeWithNoFacetsReturnsBlankList()
        {
            var materializer = new ListTermlessFacetsElasticMaterializer(r => r, typeof(SampleClass), typeof(string));
            var response = new ElasticResponse { facets = new JObject() };

            var actual = materializer.Materialize(response);

            var actualList = Assert.IsType<List<SampleClass>>(actual);
            Assert.Empty(actualList);
        }
        public static void MaterializeCreatesEmptyListIfFacetsIsEmpty()
        {
            var materializer = new ListTermlessFacetsElasticMaterializer(defaultMaterializer, typeof(SampleClass), "");

            var actual = materializer.Materialize(new ElasticResponse {
                facets = new JObject()
            });

            var actualList = Assert.IsType <List <SampleClass> >(actual);

            Assert.Empty(actualList);
        }
Beispiel #7
0
        public void MaterializeWithNoFacetsReturnsBlankList()
        {
            var materializer = new ListTermlessFacetsElasticMaterializer(r => r, typeof(SampleClass), typeof(string));
            var response     = new ElasticResponse {
                facets = new JObject()
            };

            var actual = materializer.Materialize(response);

            var actualList = Assert.IsType <List <SampleClass> >(actual);

            Assert.Empty(actualList);
        }
        public static void MaterializeCreatesListFromValidJson()
        {
            const string expectedKey = "some key";

            // Materializer should be able to handle inefficient terms + terms_stats combination
            var facets = JObject.Parse(
                "{ \"GroupKey\": { \"_type\": \"filter\", \"count\": 77 }," +
                " \"unitsInStock\": { \"_type\": \"statistical\", \"count\": 77, \"total\": 3119.0, \"max\": 125.0 } }");

            var materializer = new ListTermlessFacetsElasticMaterializer(defaultMaterializer, typeof(AggregateRow), expectedKey);

            var actual = materializer.Materialize(new ElasticResponse { facets = facets });

            var actualList = Assert.IsType<List<AggregateRow>>(actual);
            Assert.Single(actualList);

            var statisticalRow = Assert.IsType<AggregateStatisticalRow>(actualList[0]);
            Assert.Equal(expectedKey, statisticalRow.Key);
            Assert.Equal(77, statisticalRow.GetValue("GroupKey", "count", typeof(int)));
            Assert.Equal(3119.0d, statisticalRow.GetValue("unitsInStock", "total", typeof(double)));
            Assert.Equal(125.0d, statisticalRow.GetValue("unitsInStock", "max", typeof(double)));
        }
        public static void Materialize_GuardClauses()
        {
            var materializer = new ListTermlessFacetsElasticMaterializer(defaultMaterializer, typeof(SampleClass), "");

            Assert.Throws <ArgumentNullException>(() => materializer.Materialize(null));
        }
        public static void Materialize_GuardClauses()
        {
            var materializer = new ListTermlessFacetsElasticMaterializer(defaultMaterializer, typeof(SampleClass), "");

            Assert.Throws<ArgumentNullException>(() => materializer.Materialize(null));
        }
        public void MaterializeThrowsArgumentNullExceptionWhenElasticResponseIsNull()
        {
            var materializer = new ListTermlessFacetsElasticMaterializer(r => r, typeof(SampleClass), typeof(string));

            Assert.Throws<ArgumentNullException>(() => materializer.Materialize(null));
        }
Beispiel #12
0
        public void MaterializeThrowsArgumentNullExceptionWhenElasticResponseIsNull()
        {
            var materializer = new ListTermlessFacetsElasticMaterializer(r => r, typeof(SampleClass), typeof(string));

            Assert.Throws <ArgumentNullException>(() => materializer.Materialize(null));
        }