예제 #1
0
        public string GetTheTableDiffExceptionMessage(TableDifferenceResults <T> tableDifferenceResults)
        {
            var realData            = new StringBuilder();
            var index               = 0;
            var everyLineInTheTable = tableDifferenceResults.Table.ToString().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

            foreach (var line in everyLineInTheTable)
            {
                var prefix = "  ";
                if (tableDifferenceResults.IndexesOfTableRowsThatWereNotMatched.Contains(index))
                {
                    prefix = "- ";
                }
                realData.AppendLine(prefix + line);

                var missingIndexedItem = tableDifferenceResults.ItemsInTheDataThatWereNotFoundInTheTable.FirstOrDefault(i => i.Index == index);
                if (missingIndexedItem != null)
                {
                    AppendExtraLineText(tableDifferenceResults, missingIndexedItem, realData);
                }
                index++;
            }

            foreach (var item in tableDifferenceResults.ItemsInTheDataThatWereNotFoundInTheTable.Where(i => !i.IsIndexSpecific))
            {
                AppendExtraLineText(tableDifferenceResults, item, realData);
            }

            return(realData.ToString());
        }
        public string GetTheTableDiffExceptionMessage(TableDifferenceResults <T> tableDifferenceResults)
        {
            var realData            = new StringBuilder();
            var index               = 0;
            var everyLineInTheTable = tableDifferenceResults.Table.ToString().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

            foreach (var line in everyLineInTheTable)
            {
                var prefix = "  ";
                if (tableDifferenceResults.IndexesOfTableRowsThatWereNotMatched.Contains(index))
                {
                    prefix = "- ";
                }
                realData.AppendLine(prefix + line);
                index++;
            }

            foreach (var item in tableDifferenceResults.ItemsInTheDataThatWereNotFoundInTheTable)
            {
                var line = "+ |";
                foreach (var header in tableDifferenceResults.Table.Header)
                {
                    line += $" {GetTheValue(item, header)} |";
                }
                realData.AppendLine(line);
            }

            return(realData.ToString());
        }
예제 #3
0
        private void AppendExtraLineText(TableDifferenceResults <T> tableDifferenceResults, TableDifferenceItem <T> item, StringBuilder realData)
        {
            var line = "+ |";

            foreach (var header in tableDifferenceResults.Table.Header)
            {
                line += $" {GetTheValue(item.Item, header)} |";
            }
            realData.AppendLine(line);
        }
        public string GetTheTableDiffExceptionMessage(TableDifferenceResults <T> tableDifferenceResults)
        {
            var message = parent.GetTheTableDiffExceptionMessage(tableDifferenceResults);

            if (string.IsNullOrEmpty(message))
            {
                return(message);
            }

            var dictionary = GetTheMaximumLengthsOfEachColumn(message);

            var stringBuilder = new StringBuilder();

            foreach (var line in GetLines(message))
            {
                stringBuilder.AppendLine(ReformatLineUsingTheseColumnLengths(dictionary, line));
            }

            return(stringBuilder.ToString());
        }
예제 #5
0
        private void AppendExtraLineText(TableDifferenceResults <T> tableDifferenceResults, TableDifferenceItem <T> item, StringBuilder realData)
        {
            var line = "+ |";

            foreach (var header in tableDifferenceResults.Table.Header)
            {
                object value = GetTheValue(item.Item, header);

                if (value is DateTime)
                {
                    DateTime dateValue = (DateTime)value;

                    // Append millisecond and ticks, if any, to current culture's default date time format
                    string dateTimeFormat = DateTimeFormatInfo.CurrentInfo.ShortDatePattern + " " + DateTimeFormatInfo.CurrentInfo.LongTimePattern;
                    dateTimeFormat = Regex.Replace(dateTimeFormat, "(:ss|:s)", "$1.FFFFFFF");
                    value          = dateValue.ToString(dateTimeFormat);
                }

                line += $" {value} |";
            }

            realData.AppendLine(line);
        }