Ejemplo n.º 1
0
        /// <summary>
        /// Write a description of the constraint to a MessageWriter
        /// </summary>
        /// <param name="writer"></param>
        public override void WriteDescriptionTo(MessageWriter writer)
        {
            var description      = new DescriptionStructureHelper();
            var filterExpression = description.GetFilterExpression(Request.GetAllFilters());

            if (Expected.Count() == 1)
            {
                writer.WritePredicate(string.Format("find a {0} named '{1}' contained {2}",
                                                    description.GetTargetExpression(Request.Target),
                                                    Expected.First(),
                                                    filterExpression));
            }
            else
            {
                var expectationExpression = new StringBuilder();
                foreach (string item in Expected)
                {
                    expectationExpression.AppendFormat("<{0}>, ", item);
                }
                expectationExpression.Remove(expectationExpression.Length - 2, 2);

                writer.WritePredicate(string.Format("find the {0} named '{1}' contained {2}",
                                                    description.GetTargetPluralExpression(Request.Target),
                                                    expectationExpression.ToString(),
                                                    filterExpression));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Write a description of the constraint to a MessageWriter
        /// </summary>
        /// <param name="writer"></param>
        public override void WriteDescriptionTo(MessageWriter writer)
        {
            var description      = new DescriptionStructureHelper();
            var filterExpression = description.GetFilterExpression(Command.Description.Filters.Where(f => f is CaptionFilter).Cast <CaptionFilter>());

            if (!string.IsNullOrEmpty(filterExpression))
            {
                filterExpression = string.Format(" contained {0}", filterExpression);
            }

            if (Expected.Count() == 1)
            {
                writer.WritePredicate(string.Format("find a {0} named '{1}'{2}.",
                                                    description.GetTargetExpression(Command.Description.Target),
                                                    Expected.First(),
                                                    filterExpression));
            }
            else
            {
                var expectationExpression = new StringBuilder();
                foreach (string item in Expected)
                {
                    expectationExpression.AppendFormat("<{0}>, ", item);
                }
                expectationExpression.Remove(expectationExpression.Length - 2, 2);

                writer.WritePredicate(string.Format("find the {0} named '{1}'{2}.",
                                                    description.GetTargetPluralExpression(Command.Description.Target),
                                                    expectationExpression.ToString(),
                                                    filterExpression));
            }
        }
Ejemplo n.º 3
0
        /// <inheritdoc/>
        public string GetMessage()
        {
            string expectedString = $"Expected ";

            if (Expected.Count() > 1)
            {
                expectedString += "one of ";
            }

            expectedString += string.Join(", ", Expected.Select(x => string.IsNullOrEmpty(x) ? "EOF" : x).Distinct());
            expectedString += $" but found {Found}.";
            return(expectedString);
        }
Ejemplo n.º 4
0
            public override bool Matches(IEnumerable <TSource> actual)
            {
                if (actual == null)
                {
                    return(false);
                }
                var comparer = Comparer ?? EqualityComparer <TSource> .Default;

                if (actual.Count() != Expected.Count())
                {
                    return(false);
                }
                if (Expected.Zip(actual, (x, y) => comparer.Equals(x, y)).All(b => b))
                {
                    return(true);
                }
                return(false);
            }