Пример #1
0
        /// <summary>
        /// Displays the string differences.
        /// </summary>
        /// <param name="writer">The writer.</param>
        /// <param name="expected">The expected.</param>
        /// <param name="actual">The actual.</param>
        private void DisplayStringDifferences(MessageWriter writer, string expected, string actual)
        {
            int mismatch = MsgUtils.FindMismatchPosition(expected, actual, 0, CaseInsensitive);

            if (expected.Length == actual.Length)
            {
                writer.WriteMessageLine(Resources.StringsDiffer_1, expected.Length, mismatch);
            }
            else
            {
                writer.WriteMessageLine(Resources.StringsDiffer_2, expected.Length, actual.Length, mismatch);
            }

            writer.DisplayStringDifferences(expected, actual, mismatch, CaseInsensitive);
        }
Пример #2
0
 public override void WriteMessageTo(MessageWriter writer)
 {
     if (_expected == null || _actual == null)
     {
         base.WriteMessageTo(writer);
     }
     else
     {
         writer.DisplayStringDifferences(
             string.Format("{{ {0} , {1} }}", _expected.First, _expected.Second),
             string.Format("{{ {0} , {1} }}", _actual.First, _actual.Second),
             -1,
             false,
             false);
     }
 }
Пример #3
0
        public override void WriteActualValueTo(MessageWriter writer)
        {
            //IF actual is not empty it means we've an issue with Casing or a space at the end
            if (actual is IEnumerable <IField> && ((IEnumerable <IField>)actual).Count() == 1)
            {
                if (((IEnumerable <IField>)actual).ToArray()[0].Caption.ToLowerInvariant() == Expected.ToLowerInvariant())
                {
                    writer.WriteActualValue(string.Format("< <{0}> > (case not matching)", ((IEnumerable <IField>)actual).ToArray()[0].Caption));
                }
                else if (((IEnumerable <IField>)actual).ToArray()[0].Caption.EndsWith(" "))
                {
                    writer.WriteActualValue(string.Format("< <{0}> > (with ending space(s))", ((IEnumerable <IField>)actual).ToArray()[0].Caption));
                }
                else
                {
                    writer.WriteActualValue(string.Format("< <{0}> > (small difference)", ((IEnumerable <IField>)actual).ToArray()[0].Caption));
                }
            }
            else
            {
                Investigate();

                if (actual is IEnumerable <IField> && ((IEnumerable <IField>)actual).Count() > 0)
                {
                    base.WriteActualValueTo(writer);
                }
                else
                {
                    writer.WriteActualValue(new WriterHelper.NothingFoundMessage());
                }

                var closeMatch = GetCloseMatch();
                if (!string.IsNullOrEmpty(closeMatch))
                {
                    writer.WriteMessageLine("");
                    writer.WriteMessageLine("");
                    writer.WriteMessageLine(string.Format("The value '{0}' is close to your expectation.", closeMatch));
                    writer.DisplayStringDifferences(Expected, closeMatch, -1, false, true);
                }
            }
        }