Ejemplo n.º 1
0
        public override IEnumerable <Difference> CalculateDifferences(IList <FormulaItem> obj1, IList <FormulaItem> obj2)
        {
            if (obj1 == null && obj2 == null)
            {
                yield break;
            }

            if (obj1 == null || obj2 == null)
            {
                yield return(new Difference("", DefaultValueComparer.ToString(obj1), DefaultValueComparer.ToString(obj2)));

                yield break;
            }

            if (obj1.Count != obj2.Count)
            {
                yield return(new Difference("Count", obj1.Count.ToString(), obj2.Count.ToString(),
                                            DifferenceTypes.NumberOfElementsMismatch));
            }

            foreach (var formulaItem in obj1)
            {
                var formulaItem2 = obj2.FirstOrDefault(fi => fi.Id == formulaItem.Id);

                if (formulaItem2 != null)
                {
                    var comparer = Factory.GetObjectsComparer <FormulaItem>();

                    foreach (var difference in comparer.CalculateDifferences(formulaItem, formulaItem2))
                    {
                        yield return(difference.InsertPath($"[Id={formulaItem.Id}]"));
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public void Compare(object value, string expectedResult)
        {
            var comparer = new DefaultValueComparer();

            var actualResult = comparer.ToString(value);

            Assert.AreEqual(expectedResult, actualResult);
        }