0
|
1 using System;
|
|
2 using System.Runtime.CompilerServices;
|
|
3
|
|
4 using NUnit.Framework;
|
|
5
|
|
6 using BLToolkit.Data;
|
|
7 using BLToolkit.DataAccess;
|
|
8 using BLToolkit.Reflection;
|
|
9
|
|
10 namespace DataAccess
|
|
11 {
|
|
12 [TestFixture]
|
|
13 public class DynamicSqlQueryTest
|
|
14 {
|
|
15 public abstract class DynamicSqlQueryAccessor : DataAccessor
|
|
16 {
|
|
17 class DynamicSqlQueryAttribute : SqlQueryAttribute
|
|
18 {
|
|
19 public override string GetSqlText(DataAccessor accessor, DbManager dbManager)
|
|
20 {
|
|
21 return SqlText + 1;
|
|
22 }
|
|
23 }
|
|
24
|
|
25 [DynamicSqlQuery(SqlText="SELECT ", IsDynamic=true)]
|
|
26 public abstract int GetID1();
|
|
27
|
|
28 [SqlQuery("SELECT ", ID = 2)]
|
|
29 public abstract int GetID2();
|
|
30
|
|
31 protected override string PrepareSqlQuery(
|
|
32 DbManager db, int queryID, int uniqueQueryID, string sqlQuery)
|
|
33 {
|
|
34 switch (queryID)
|
|
35 {
|
|
36 case 2: return sqlQuery + queryID;
|
|
37 }
|
|
38
|
|
39 return base.PrepareSqlQuery(db, queryID, uniqueQueryID, sqlQuery);
|
|
40 }
|
|
41 }
|
|
42
|
|
43 [Test]
|
|
44 public void DynamicQueryTest()
|
|
45 {
|
|
46 DynamicSqlQueryAccessor da = TypeAccessor<DynamicSqlQueryAccessor>.CreateInstance();
|
|
47 Assert.AreEqual(da.GetID1(), 1);
|
|
48 }
|
|
49
|
|
50 [Test]
|
|
51 public void QueryIDTest()
|
|
52 {
|
|
53 DynamicSqlQueryAccessor da = TypeAccessor<DynamicSqlQueryAccessor>.CreateInstance();
|
|
54 Assert.AreEqual(da.GetID2(), 2);
|
|
55 }
|
|
56 }
|
|
57 }
|