public void WriteRecord_MultipleRecordsWithoutTransactionAndNoCommit_ChangesAreCommitted() { var people = Person.Faker.Generate(2); var commands = new SqlCommand[] { DatabaseWriterTests.GenerateInsertPersonCommand(people[0]), DatabaseWriterTests.GenerateInsertPersonCommand(people[1]) }; var commandFactory = MockRepository.GenerateMock <IDatabaseWriterCommandFactory>(); commandFactory.Stub(x => x.Create(Arg <object> .Is.Equal(people[0]))).Return(commands[0]); commandFactory.Stub(x => x.Create(Arg <object> .Is.Equal(people[1]))).Return(commands[1]); using (var databaseWriter = new DatabaseWriter(commandFactory, DatabaseWriterTests.DbConnectionString, false)) { databaseWriter.Open(); databaseWriter.WriteRecord(people[0]); databaseWriter.WriteRecord(people[1]); } using (var testDb = new TestDb(DatabaseWriterTests.DbConnectionString)) { var records = testDb.Delete("dbo.Person", people.ToArray()); Assert.AreEqual(2, records.Length); } }
public void WriteRecord_CommandRaisesError_ExceptionIsPropogated() { var person = Person.Faker.Generate(1).Single(); var command = new SqlCommand("dbo.RaiseError") { CommandType = CommandType.StoredProcedure }; var commandFactory = MockRepository.GenerateMock <IDatabaseWriterCommandFactory>(); commandFactory.Stub(x => x.Create(Arg <object> .Is.Equal(person))).Return(command); using (var databaseWriter = new DatabaseWriter(commandFactory, DatabaseWriterTests.DbConnectionString)) { databaseWriter.Open(); databaseWriter.WriteRecord(person); } }