public void Merger_DefaultMergeCriteria_UsesNewValues(ComplexObjectTestCriteria criteria) { // the merger will sort the objects, meaning the "highest" item is expected to be merged var expected = criteria.Expected; var mergedValue = (ComplexObjectNullableFields)_merger.Merge(criteria.History); Assert.AreEqual(expected.NullableIntValue, mergedValue.NullableIntValue, "Nullible int value is incorrectly merged."); Assert.AreEqual(expected.NullableDoubleValue, mergedValue.NullableDoubleValue, "Nullible double value is incorrectly merged."); Assert.AreEqual(expected.NullableDateTimeValue, mergedValue.NullableDateTimeValue, "Nullible date time value is incorrectly merged."); Assert.AreEqual(expected.StringValue, mergedValue.StringValue, "String value is incorrectly merged."); Assert.AreEqual(expected.ByteArrayValue, mergedValue.ByteArrayValue, "ByteArray value is incorrectly merged."); Assert.AreEqual(expected.IntValue, mergedValue.IntValue, "Int value is incorrectly merged."); Assert.AreEqual(expected.DoubleValue, mergedValue.DoubleValue, "Double value is incorrectly merged."); Assert.AreEqual(expected.DateTimeValue, mergedValue.DateTimeValue, "DateTime value is incorrectly merged."); }
public static List <ComplexObjectTestCriteria> GetComplexObjectNullibleFieldSet() { var histories = new List <ComplexObjectTestCriteria>(); var nullReplacedTest = new ComplexObjectTestCriteria { History = new[] { GetDefaultsWithNulls(), GetDefaultAllFieldsFilled() } }; nullReplacedTest.Expected = nullReplacedTest.History[1]; var nullDoesNothingTest = new ComplexObjectTestCriteria { History = new[] { GetDefaultAllFieldsFilled(), GetDefaultsWithNulls() } }; nullDoesNothingTest.Expected = nullDoesNothingTest.History[0]; histories.Add(nullReplacedTest); histories.Add(nullDoesNothingTest); return(histories); }