public void Calling_ExtractRecord_After_Null_Resets_Reader() { // arrange int j = -1; this.reader.Setup(x => x["field2"]) .Returns(() => j < 4 ? TableData[j, 1] : null); this.reader.Setup(x => x.Read()) .Returns(() => j < 3) .Callback(() => j++); this.command.Setup(x => x.ExecuteReader()) .Returns(this.reader.Object) .Callback(() => j = -1); var adapter = new DatabaseAdapter(this.conn.Object, this.sqlGenerator.Object); // act var record1 = adapter.ExtractRecord(TableName); var record2 = adapter.ExtractRecord(TableName); var record3 = adapter.ExtractRecord(TableName); var record4 = adapter.ExtractRecord(TableName); var record5 = adapter.ExtractRecord(TableName); var record6 = adapter.ExtractRecord(TableName); // assert Assert.AreEqual("col2val1", record1["field2"]); Assert.AreEqual("col2val2", record2["field2"]); Assert.AreEqual("col2val3", record3["field2"]); Assert.AreEqual("col2val4", record4["field2"]); Assert.IsNull(record5); Assert.AreEqual("col2val1", record6["field2"]); }
public void Test_ExtractRecord_With_Sql_Query() { // arrange var adapter = new DatabaseAdapter(this.conn.Object, this.sqlGenerator.Object); this.reader.Setup(x => x.Read()).Returns(true); // act var record = adapter.ExtractRecord(TableName); // assert Assert_Record_Is_Good(record); }
public void Test_ExtractRecord_Called_Multiple_Times() { // arrange int j = -1; this.reader.Setup(x => x["field1"]) .Returns(() => TableData[j, 0]); this.reader.Setup(x => x["field2"]) .Returns(() => TableData[j, 1]); this.reader.Setup(x => x["field3"]) .Returns(() => TableData[j, 2]); this.reader.Setup(x => x.Read()) .Returns(true) .Callback(() => j++); var adapter = new DatabaseAdapter(this.conn.Object, this.sqlGenerator.Object); // act var record1 = adapter.ExtractRecord(TableName); var record2 = adapter.ExtractRecord(TableName); // assert Assert.AreEqual("col2val1", record1["field2"]); Assert.AreEqual("col2val2", record2["field2"]); }