comparison UnitTests/CS/EditableObjects/EditableList_AcceptChanges.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.DataAccess;
6 using BLToolkit.EditableObjects;
7 using BLToolkit.Mapping;
8 using BLToolkit.Reflection;
9 using BLToolkit.TypeBuilder;
10
11 namespace A.EditableObjects
12 {
13 //[TestFixture]
14 public class EditableList_AcceptChanges
15 {
16 public static bool IsAcceptChangesCallForPersonPhone = false;
17
18 public abstract class _DomainObject : EditableObject
19 {
20 [PrimaryKey(0), NonUpdatable]
21 [NullValue()]
22 public abstract int ID { get; set; }
23
24 public override void AcceptChanges()
25 {
26 base.AcceptChanges();
27
28 if (typeof(_PersonPhone).IsAssignableFrom(GetType()))
29 IsAcceptChangesCallForPersonPhone = true;
30 }
31 }
32
33 public abstract class _PersonPhone : _DomainObject, IEditable
34 {
35 public abstract string Number_PersonPhone { get; set; }
36 }
37
38 public abstract class _Person : _DomainObject
39 {
40 public abstract EditableList<_PersonPhone> Phones { get; set; }
41 }
42
43 //[Test]
44 public void Test_EditableList_AcceptChanges()
45 {
46 _Person person = TypeAccessor<_Person>.CreateInstance();
47
48 person.Phones.AddRange(new _PersonPhone[]
49 {
50 TypeAccessor<_PersonPhone>.CreateInstanceEx(),
51 TypeAccessor<_PersonPhone>.CreateInstanceEx()
52 });
53
54 person.Phones[1].Number_PersonPhone = "222-22-22";
55
56 person.AcceptChanges();
57
58 Assert.IsFalse(person.IsDirty);
59 Assert.IsTrue(IsAcceptChangesCallForPersonPhone);
60 }
61 }
62 }