public void Compare_NoUnexpected_UnexpectedNotVisible()
        {
            var res = new ListComparer.Result(
                new List <string> {
                "a", "b", "c"
            },
                null
                );

            var formatter = new ListComparisonFormatter();
            var display   = formatter.Format(res).ToString();

            Assert.That(display, Is.Not.StringContaining("nexpected"));
        }
        public void Compare_BothEmpty_CorrectDisplay()
        {
            var res = new ListComparer.Result(
                new List <string> {
            },
                new List <string> {
            }
                );

            var formatter = new ListComparisonFormatter();
            var display   = formatter.Format(res).ToString();

            Assert.That(display, Is.StringContaining("No missing item"));
            Assert.That(display, Is.StringContaining("No unexpected item"));
        }
        public void Compare_MultipleMissing_Plural()
        {
            var res = new ListComparer.Result(
                new List <string> {
                "a", "b", "c"
            },
                null
                );

            var formatter = new ListComparisonFormatter();
            var display   = formatter.Format(res).ToString();

            Assert.That(display, Is.StringContaining("Missing items"));
            Assert.That(display, Is.StringContaining("<a>"));
            Assert.That(display, Is.StringContaining("<b>"));
            Assert.That(display, Is.StringContaining("<c>"));
        }
        public void Compare_Mix_CorrectDisplay()
        {
            var res = new ListComparer.Result(
                new List <string> {
                "x"
            },
                new List <string> {
                "a", "b", "c"
            }
                );

            var formatter = new ListComparisonFormatter();
            var display   = formatter.Format(res).ToString();

            Assert.That(display, Is.Not.StringContaining("Missing items"));
            Assert.That(display, Is.StringContaining("Missing item"));
            Assert.That(display, Is.StringContaining("Unexpected items"));
            Assert.That(display, Is.StringContaining("<x>"));
            Assert.That(display, Is.StringContaining("<a>"));
            Assert.That(display, Is.StringContaining("<b>"));
            Assert.That(display, Is.StringContaining("<c>"));
        }
        /// <summary>
        /// Write a description of the constraint to a MessageWriter
        /// </summary>
        /// <param name="writer"></param>
        public override void WriteDescriptionTo(MessageWriter writer)
        {
            if (Request != null)
            {
                writer.WritePredicate(string.Format("On perspective \"{0}\", {1} "
                                                    , Request.Perspective
                                                    , GetPredicate()));
                writer.WriteExpectedValue(ExpectedItems);

                var info = new ListComparisonFormatter()
                           .Format
                           (
                    new ListComparer()
                    .Compare
                    (
                        ((MemberResult)actual).ToCaptions()
                        , ExpectedItems
                        , GetComparisonType()
                    ).Sample()
                           );

                writer.WriteLine(info.ToString());
            }
        }