Ejemplo n.º 1
0
 private void ShouldBeEquivalent(AnyOfExpression actual, AnyOfExpression expected)
 {
     actual.AnyOf.Length.Should().Be(expected.AnyOf.Length);
     for (var i = 0; i < actual.AnyOf.Length; i++)
     {
         var actualChild   = actual.AnyOf[i];
         var expectedChild = expected.AnyOf[i];
         ShouldBeEquivalent(actualChild, expectedChild);
     }
 }
Ejemplo n.º 2
0
        public void Accept_mixed_logical_operators()
        {
            var json     = $@"
{{
    ""anyOf"": [
        {{
            ""allOf"": [
                {{
                    ""left"": ""DeviceType"",
                    ""operator"": ""Equals"",
                    ""right"": ""Breaker""
                }},
                {{
                    ""left"": ""Hierarchy"",
                    ""operator"": ""In"",
                    ""right"": ""ATS""
                }}
            ],
        }},
        {{
            ""left"": ""DeviceState"",
            ""operator"": ""NotIn"",
            ""right"": ""NormallyOpen,NormallyClosed""
        }}
    ]
}}";
            var expected = new AnyOfExpression()
            {
                AnyOf = new IConditionExpression[]
                {
                    new AllOfExpression()
                    {
                        AllOf = new IConditionExpression[]
                        {
                            new LeafExpression()
                            {
                                Left     = "DeviceType",
                                Operator = Operator.Equals,
                                Right    = "Breaker",
                                RightSideIsExpression = false
                            },
                            new LeafExpression()
                            {
                                Left     = "Hierarchy",
                                Operator = Operator.In,
                                Right    = "ATS",
                                RightSideIsExpression = false
                            }
                        }
                    },
                    new LeafExpression()
                    {
                        Left     = "DeviceState",
                        Operator = Operator.NotIn,
                        Right    = "NormallyOpen,NormallyClosed"
                    }
                }
            };

            Runner.RunScenario(
                given => A_leaf_expression(json),
                when => I_parse_json_expression(),
                then => Parsed_expression_should_be(expected));
        }