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_Generate_Conversion_Xml_Against_Live_Database() { var adapter = new DatabaseAdapter(this.conn); var generator = new XmlConversionGenerator(adapter); var result = generator.GenerateXmlConversionTemplate("tblContacts"); string path = @"C:\Users\ahaley\Documents\Visual Studio 2008\Projects\Pyrite\Pyrite.XmlConversionRules.Tests\xml\test.xml"; result.Save(path); }
public void ExtractFields() { var adapter = new DatabaseAdapter(this.conn); var fields = adapter.ExtractColumnDistinct("tblContacts", "tblContactCat"); Array.ForEach(fields, field => Console.WriteLine("{0}", field)); }
public void Test_ExtractColumn_Works() { // arrange var adapter = new DatabaseAdapter(this.conn.Object, this.sqlGenerator.Object); var callRead = 0; this.reader.Setup(x => x.Read()) .Returns(() => callRead < 3) .Callback(() => callRead++); var callArray = 0; this.reader.Setup(x => x["field2"]) .Returns(() => TableData[callArray, 1]) .Callback(() => callArray++); // act var columnData = adapter.ExtractColumnDistinct("some_table", "field2"); // assert Assert.AreEqual(3, columnData.Length); Assert.AreEqual("col2val1", columnData[0]); Assert.AreEqual("col2val2", columnData[1]); Assert.AreEqual("col2val3", columnData[2]); }
public void Test_Insert_Record_Dictionary() { // arrange var adapter = new DatabaseAdapter(this.conn.Object, this.sqlGenerator.Object); var record = new Dictionary<string, object> { {"field1", "value1"}, {"field2", "value2"}}; this.command.Setup(x => x.ExecuteNonQuery()).Returns(1); const string query = "INSERT INTO some_table (field1, field2) VALUES('value1', 'value2')"; this.sqlGenerator.Setup(x => x.GenerateInsert(TableName, record)) .Returns(query); // act var result = adapter.InsertRecord("some_table", record); // assert command.VerifySet(x => x.CommandText = query); command.Verify(x => x.ExecuteNonQuery()); Assert.AreEqual(1, result); }
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"]); }
public void Test_ExtractMultipleColumns_Work() { // arrange var adapter = new DatabaseAdapter(this.conn.Object, this.sqlGenerator.Object); var dbInput = new Queue<object>(new [] {"col2val1", "col2val2", "col2val3", "col3val1", "col3val2", "col3val3"}); this.reader.Setup(x => x.Read()).Returns(() => dbInput.Count > 0); this.reader.Setup(x => x[0]).Returns(() => dbInput.Dequeue()); // act var multiColumnData = adapter.ExtractMultiColumnDistinct(TableName, new [] {"field2", "field3"}); // assert Assert.AreEqual(6, multiColumnData.Length); }