public void Test() { var e = new Entity { Color = Colors.Blue, Color2 = Colors.Green, Mood = Moods.VeryHappy, Mood2 = Moods.Great, }; var dto = new Dto(); dto.InjectFrom <EnumToInt>(e); var deltas = dto.DeltaResults(); Assert.AreEqual(2, dto.Color); Assert.AreEqual(1, dto.Color2); Assert.AreEqual(2, dto.Mood); Assert.AreEqual(3, dto.Mood2); Assert.IsTrue(deltas.Any()); Assert.IsTrue(deltas.Count == 4); Assert.IsTrue((Colors)deltas[0].SourceValue == e.Color); Assert.IsTrue((int)deltas[0].TargetValueOld == 0); Assert.IsTrue((int)deltas[0].TargetValueNew == dto.Color); var e2 = new Entity(); e2.InjectFrom <IntToEnum>(dto); Assert.AreEqual(dto.Color, 2); Assert.AreEqual(dto.Color2, 1); Assert.AreEqual(dto.Mood, 2); Assert.AreEqual(dto.Mood2, 3); }