Mercurial > pub > bltoolkit
comparison UnitTests/CS/EditableObjects/EditableObjectT.cs @ 0:f990fcb411a9
Копия текущей версии из github
| author | cin | 
|---|---|
| date | Thu, 27 Mar 2014 21:46:09 +0400 | 
| parents | |
| children | 
   comparison
  equal
  deleted
  inserted
  replaced
| -1:000000000000 | 0:f990fcb411a9 | 
|---|---|
| 1 using System; | |
| 2 | |
| 3 using NUnit.Framework; | |
| 4 | |
| 5 using BLToolkit.EditableObjects; | |
| 6 using BLToolkit.TypeBuilder; | |
| 7 | |
| 8 namespace EditableObjects | |
| 9 { | |
| 10 [TestFixture] | |
| 11 public class EditableObjectT | |
| 12 { | |
| 13 public abstract class TestObject: EditableObject<TestObject> | |
| 14 { | |
| 15 public abstract int ID { get; set; } | |
| 16 public abstract string Name { get; set; } | |
| 17 public abstract InnerObject Inner { get; set; } | |
| 18 | |
| 19 public abstract class InnerObject: EditableObject<InnerObject> | |
| 20 { | |
| 21 public abstract int Some { get; set; } | |
| 22 } | |
| 23 } | |
| 24 | |
| 25 [Test] | |
| 26 public void CloneTest() | |
| 27 { | |
| 28 TestObject o = TestObject.CreateInstance(); | |
| 29 | |
| 30 o.ID = 1; | |
| 31 o.Name = "str"; | |
| 32 o.Inner.Some = 2; | |
| 33 | |
| 34 TestObject clone = o.Clone(); | |
| 35 | |
| 36 // Make sure this one is cloned, not copied. | |
| 37 // | |
| 38 o.Inner.Some = 3; | |
| 39 | |
| 40 Assert.AreEqual(o.ID, clone.ID); | |
| 41 Assert.AreEqual(o.Name, clone.Name); | |
| 42 | |
| 43 Assert.AreNotEqual(o.Inner.Some, clone.Inner.Some); | |
| 44 Assert.IsFalse(o.Equals(clone)); | |
| 45 | |
| 46 // Now make it the same as original value. | |
| 47 // | |
| 48 clone.Inner = o.Inner.Clone(); | |
| 49 | |
| 50 Assert.AreEqual(o.Inner.Some, clone.Inner.Some); | |
| 51 } | |
| 52 | |
| 53 [Test] | |
| 54 public void IsDirtyTest() | |
| 55 { | |
| 56 TestObject o = TestObject.CreateInstance(); | |
| 57 | |
| 58 o.ID = 1; | |
| 59 o.Name = "str"; | |
| 60 o.Inner.Some = 2; | |
| 61 o.AcceptChanges(); | |
| 62 | |
| 63 TestObject clone = o.Clone(); | |
| 64 | |
| 65 Assert.IsFalse(o.IsDirty); | |
| 66 Assert.IsFalse(clone.IsDirty); | |
| 67 } | |
| 68 } | |
| 69 } | 
