annotate UnitTests/CS/DataAccess/SqlQueryTest.cs @ 1:8f65451dc28f

Исправлена проблема с фабрикой и выборкой нескольких объектов в linq выражении
author cin
date Fri, 28 Mar 2014 01:04:56 +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;
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
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 namespace DataAccess
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 public class SqlQueryTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 public class Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public string LastName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 public string FirstName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 public string MiddleName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 [ObjectType(typeof(Person))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 public abstract class PersonAccessor : DataAccessor
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 [TestQuery(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 SqlText = "SELECT * FROM Person WHERE LastName = @lastName",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 OracleText = "SELECT * FROM Person WHERE LastName = :lastName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 public abstract ArrayList SelectByLastName(string lastName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 [TestQuery(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 SqlText = "SELECT * FROM Person WHERE {0} = @value",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 OracleText = "SELECT * FROM Person WHERE {0} = :value")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 public abstract ArrayList SelectBy([Format] string fieldName, string value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 [TestQuery(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 SqlText = "SELECT TOP ({0}) * FROM Person WHERE LastName = @lastName",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 AccessText = "SELECT TOP {0} * FROM Person WHERE LastName = @lastName",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 OracleText = "SELECT * FROM Person WHERE LastName = :lastName AND rownum <= {0}",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 FbText = "SELECT FIRST {0} * FROM Person WHERE LastName = @lastName",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 SQLiteText = "SELECT * FROM Person WHERE LastName = @lastName LIMIT {0}")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 public abstract ArrayList SelectByLastName(string lastName, [Format(0)] int top);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 public void Test1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 var da = (PersonAccessor)DataAccessor.CreateInstance(typeof(PersonAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 var list = da.SelectByLastName("Pupkin");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 Assert.AreNotEqual(0, list.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 public void Test2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 var da = (PersonAccessor)DataAccessor.CreateInstance(typeof(PersonAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 var list = da.SelectBy("FirstName", "John");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 Assert.AreNotEqual(0, list.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 public void Test3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 var da = (PersonAccessor)DataAccessor.CreateInstance(typeof(PersonAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 var list = da.SelectByLastName("Pupkin", 1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 Assert.AreNotEqual(0, list.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 }