コード例 #1
0
        public void TestConsequenceQueryConverter()
        {
            string           json         = "{\"remove\": [\"term1\", \"term2\"], \"edits\": [{\"type\": \"remove\", \"delete\": \"term3\"}]}";
            ConsequenceQuery deserialized = JsonConvert.DeserializeObject <ConsequenceQuery>(json, new ConsequenceQueryConverter());

            Assert.AreEqual(3, deserialized.Edits.Count());

            Assert.True(deserialized.Edits.ElementAt(0).Type.Equals("remove"));
            Assert.True(deserialized.Edits.ElementAt(0).Delete.Equals("term1"));
            Assert.Null(deserialized.Edits.ElementAt(0).Insert);

            Assert.True(deserialized.Edits.ElementAt(1).Type.Equals("remove"));
            Assert.True(deserialized.Edits.ElementAt(1).Delete.Equals("term2"));
            Assert.Null(deserialized.Edits.ElementAt(1).Insert);

            Assert.True(deserialized.Edits.ElementAt(2).Type.Equals("remove"));
            Assert.True(deserialized.Edits.ElementAt(2).Delete.Equals("term3"));
            Assert.Null(deserialized.Edits.ElementAt(2).Insert);
        }
コード例 #2
0
        public void TestConsequenceQueryEditsAndRemove()
        {
            var payload =
                "{\n"
                + "  \"objectID\": \"rule-2\",\n"
                + "  \"condition\": {\n"
                + "    \"pattern\": \"toto\",\n"
                + "    \"anchoring\": \"is\"\n"
                + "  },\n"
                + "  \"consequence\": {\n"
                + "    \"params\": {\n"
                + "        \"query\":{\"remove\": [\"term1\", \"term2\"], \"edits\": [{\"type\": \"remove\", \"delete\": \"term3\"}]},"
                + "        \"facetFilters\": [[\"facet\"]]\n"
                + "    }\n"
                + "  }\n"
                + "}";

            var rule = JsonConvert.DeserializeObject <Rule>(payload, JsonConfig.AlgoliaJsonSerializerSettings);

            Assert.That(rule, Is.Not.Null);
            Assert.That(rule.ObjectID, Is.EqualTo("rule-2"));

            Assert.That(rule.Condition.Pattern, Is.EqualTo("toto"));
            Assert.That(rule.Condition.Anchoring, Is.EqualTo("is"));

            ConsequenceQuery deserialized = rule.Consequence.Params.Query;

            Assert.AreEqual(3, deserialized.Edits.Count());

            Assert.True(deserialized.Edits.ElementAt(0).Type.Equals("remove"));
            Assert.True(deserialized.Edits.ElementAt(0).Delete.Equals("term1"));
            Assert.Null(deserialized.Edits.ElementAt(0).Insert);

            Assert.True(deserialized.Edits.ElementAt(1).Type.Equals("remove"));
            Assert.True(deserialized.Edits.ElementAt(1).Delete.Equals("term2"));
            Assert.Null(deserialized.Edits.ElementAt(1).Insert);

            Assert.True(deserialized.Edits.ElementAt(2).Type.Equals("remove"));
            Assert.True(deserialized.Edits.ElementAt(2).Delete.Equals("term3"));
            Assert.Null(deserialized.Edits.ElementAt(2).Insert);

            Assert.That(rule.Consequence.Params.FacetFilters, Has.Count.EqualTo(1));
        }