comparison UnitTests/Fluent/MockDataBase/MockDb.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 using System.Collections.Generic;
3 using System.Data;
4 using System.Linq;
5 using Microsoft.VisualStudio.TestTools.UnitTesting;
6
7 namespace BLToolkit.Fluent.Test.MockDataBase
8 {
9 /// <summary>
10 /// DB configure start point
11 /// </summary>
12 public partial class MockDb : IDbConnection
13 {
14 private int _cmdIndex = -1;
15 private readonly List<MockCommandData> _commands = new List<MockCommandData>();
16
17 public List<MockCommandData> Commands { get { return _commands; } }
18
19 private MockCommandData NextCommand()
20 {
21 _cmdIndex++;
22 if (_cmdIndex == _commands.Count)
23 {
24 Assert.Fail("Command not define");
25 }
26 return _commands[_cmdIndex];
27 }
28
29 /// <summary>
30 /// New IDataReader query
31 /// </summary>
32 /// <param name="fields"></param>
33 /// <returns></returns>
34 public MockDb NewReader(params string[] fields)
35 {
36 CurrentSetupCommandData = new MockCommandData { ReaderResult = new MockReaderData() };
37 return NextResult(fields);
38 }
39
40 /// <summary>
41 /// Next result into current IDataReader context
42 /// </summary>
43 /// <param name="fields"></param>
44 /// <returns></returns>
45 public MockDb NextResult(params string[] fields)
46 {
47 var data = new MockReaderResultData();
48 data.SetNames(fields);
49 CurrentSetupCommandData.ReaderResult.CurrentResult = data;
50 return this;
51 }
52
53 public MockDb NewRow(params object[] values)
54 {
55 CurrentSetupCommandData.ReaderResult.CurrentResult.Values.Add(values);
56 return this;
57 }
58
59 private MockCommandData CurrentSetupCommandData
60 {
61 get { return _commands.LastOrDefault(); }
62 set { _commands.Add(value); }
63 }
64
65 public MockDb NewNonQuery(int value = 1)
66 {
67 CurrentSetupCommandData = new MockCommandData { NonQueryResult = value };
68 return this;
69 }
70 }
71 }