예제 #1
0
        private static TestList <ExpectedResponse> HydrateExpected(IEnumerable <XElement> xmlExpected)
        {
            TestList <ExpectedResponse> expected = (from ex in xmlExpected
                                                    select new ExpectedResponse()
            {
                Key = ex.Element(Namespace + "KeyExpression") == null ? null : new Evaluator(ex.Element(Namespace + "KeyExpression").Value),
                Trim = Convert.ToBoolean(Value(ex.Attribute(Namespace + "Trim"))),
                Expressions = HydrateExpressions(ex),
                Destination = ex.Element(Namespace + "Destination") == null ? null : new ResponseDestination
                {
                    Name = ex.Element(Namespace + "Destination").Element(Namespace + "Name").Value,
                    Default = new ValueHelper(ex.Element(Namespace + "Destination").Element(Namespace + "Default").Value)
                },
                FailureMessage = ex.Element(Namespace + "FailureMessage") == null ? "" : ex.Element(Namespace + "FailureMessage").Value
            }).ToTestList();

            if ((expected.Count > 1) && (expected.Any(er => (er.Key == null) && (er.Expressions.Count > 0))))
            {
                throw new InvalidOperationException("When a response element contains sub fields (i.e. multiple expected elements), every expected element must contain a KeyExpression.");
            }

            return(expected);
        }