0
|
1 using System.Collections.Generic;
|
|
2
|
|
3 using NUnit.Framework;
|
|
4
|
|
5 using BLToolkit.DataAccess;
|
|
6
|
|
7 namespace HowTo.DataAccess
|
|
8 {
|
|
9 [TestFixture]
|
|
10 public class ActualType
|
|
11 {
|
|
12 public interface IName
|
|
13 {
|
|
14 string Name { get; }
|
|
15 }
|
|
16
|
|
17 public class NameBase : IName
|
|
18 {
|
|
19 private string _name;
|
|
20 public string Name { get { return _name; } set { _name = value; } }
|
|
21 }
|
|
22
|
|
23 public class Name1 : NameBase {}
|
|
24 public class Name2 : NameBase {}
|
|
25
|
|
26 [/*[a]*/ActualType/*[/a]*/(typeof(IName), typeof(/*[a]*/Name1/*[/a]*/))]
|
|
27 public abstract class TestAccessor : DataAccessor
|
|
28 {
|
|
29 [SqlQuery("SELECT 'John' as Name")]
|
|
30 public abstract IName GetName1();
|
|
31
|
|
32 [SqlQuery("SELECT 'John' as Name"), /*[a]*/ObjectType/*[/a]*/(typeof(/*[a]*/Name2/*[/a]*/))]
|
|
33 public abstract IName GetName2();
|
|
34
|
|
35 [SqlQuery("SELECT 'John' as Name")]
|
|
36 public abstract IList<IName> GetName1List();
|
|
37
|
|
38 [SqlQuery("SELECT 'John' as Name"), /*[a]*/ObjectType/*[/a]*/(typeof(/*[a]*/Name2/*[/a]*/))]
|
|
39 public abstract IList<IName> GetName2List();
|
|
40
|
|
41 [SqlQuery("SELECT 1 as ID, 'John' as Name"), Index("@ID")]
|
|
42 public abstract IDictionary<int, IName> GetName1Dictionary();
|
|
43
|
|
44 [SqlQuery("SELECT 1 as ID, 'John' as Name"), Index("@ID"), /*[a]*/ObjectType/*[/a]*/(typeof(/*[a]*/Name2/*[/a]*/))]
|
|
45 public abstract IDictionary<int, IName> GetName2Dictionary();
|
|
46 }
|
|
47
|
|
48 [Test]
|
|
49 public void Test()
|
|
50 {
|
|
51 TestAccessor ta = DataAccessor.CreateInstance<TestAccessor>();
|
|
52
|
|
53 Assert.IsTrue(ta.GetName1() is Name1);
|
|
54 Assert.IsTrue(ta.GetName2() is Name2);
|
|
55 Assert.IsTrue(ta.GetName1List()[0] is Name1);
|
|
56 Assert.IsTrue(ta.GetName2List()[0] is Name2);
|
|
57 Assert.IsTrue(ta.GetName1Dictionary()[1] is Name1);
|
|
58 Assert.IsTrue(ta.GetName2Dictionary()[1] is Name2);
|
|
59 }
|
|
60 }
|
|
61 }
|