annotate UnitTests/CS/EditableObjects/EditableObjectT.cs @ 6:11b6da379593

Исправлена странная ошибка при использовании OfType<...>().Where(...)
author cin
date Mon, 05 Dec 2016 05:50:52 +0300
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.EditableObjects;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using BLToolkit.TypeBuilder;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 namespace EditableObjects
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 public class EditableObjectT
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 public abstract class TestObject: EditableObject<TestObject>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public abstract int ID { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public abstract string Name { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 public abstract InnerObject Inner { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 public abstract class InnerObject: EditableObject<InnerObject>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 public abstract int Some { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 public void CloneTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 TestObject o = TestObject.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 o.ID = 1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 o.Name = "str";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 o.Inner.Some = 2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 TestObject clone = o.Clone();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 // Make sure this one is cloned, not copied.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 o.Inner.Some = 3;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 Assert.AreEqual(o.ID, clone.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 Assert.AreEqual(o.Name, clone.Name);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 Assert.AreNotEqual(o.Inner.Some, clone.Inner.Some);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 Assert.IsFalse(o.Equals(clone));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 // Now make it the same as original value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 clone.Inner = o.Inner.Clone();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 Assert.AreEqual(o.Inner.Some, clone.Inner.Some);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 public void IsDirtyTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 TestObject o = TestObject.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 o.ID = 1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 o.Name = "str";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 o.Inner.Some = 2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 o.AcceptChanges();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 TestObject clone = o.Clone();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 Assert.IsFalse(o.IsDirty);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 Assert.IsFalse(clone.IsDirty);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 }