annotate UnitTests/CS/DataAccess/ActualTypeAttributeTest.cs @ 3:1ef98bd70424

!bug 100 +3h Исправление проблемы BLToolkit + mono 3.4
author cin
date Fri, 22 Aug 2014 17:34:46 +0400
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 using System.Collections.Generic;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using BLToolkit.DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Reflection;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 namespace DataAccess
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public class ActualTypeAttributeTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 public interface IName
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 string Name { get; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 public class NameBase : IName
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 private string _name;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 public string Name { get { return _name; } set { _name = value; } }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 public class Name1 : NameBase {}
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 public class Name2 : NameBase {}
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 public interface IValue
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 string Value { get; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 public class MyValue : IValue
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 private string _value;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 public string Value { get { return _value; } set { _value = value; } }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 [ActualType(typeof(IName), typeof(Name1))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 [ActualType(typeof(IValue), typeof(MyValue))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 public abstract class TestAccessor : DataAccessor
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 [SqlQuery("SELECT 'John' as Name")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 public abstract IName GetName();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 [SqlQuery("SELECT 'John' as Name"), ObjectType(typeof(Name2))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 public abstract IName GetName2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 [SqlQuery("SELECT 'John' as Name")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 public abstract IList<IName> GetNameList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 [SqlQuery("SELECT 'John' as Name"), ObjectType(typeof(Name2))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 public abstract IList<IName> GetName2List();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 [SqlQuery("SELECT 1 as ID, 'John' as Name"), Index("@ID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 public abstract IDictionary<int, IName> GetNameDictionary();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 [SqlQuery("SELECT 1 as ID, 'John' as Name"), Index("@ID"), ObjectType(typeof(Name2))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 public abstract IDictionary<int, IName> GetName2Dictionary();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 [SqlQuery("SELECT 'John' as Value")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 public abstract IValue GetValue();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 TestAccessor Accessor
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 get { return TypeAccessor.CreateInstance<TestAccessor>(); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 public void TestName()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 IName name = Accessor.GetName();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 Assert.IsTrue(name is Name1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 public void TestName2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 IName name = Accessor.GetName2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 Assert.IsTrue(name is Name2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 public void TestNameList()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 IList<IName> list = Accessor.GetNameList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 Assert.IsTrue(list[0] is Name1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 public void TestName2List()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 IList<IName> list = Accessor.GetName2List();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 Assert.IsTrue(list[0] is Name2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 public void TestNameDictionary()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 IDictionary<int, IName> dic = Accessor.GetNameDictionary();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 Assert.IsTrue(dic[1] is Name1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 public void TestName2Dictionary()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 IDictionary<int, IName> dic = Accessor.GetName2Dictionary();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 Assert.IsTrue(dic[1] is Name2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 public void TestValue()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 IValue value = Accessor.GetValue();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 Assert.AreEqual(value.Value, "John");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 }