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); }
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)); }