public void SqlBulkCopyWriter_InvalidColumnMappings_ExceptionIsPropogatedAndThrownFromCommit() { var invalidColumnMappings = new List <SqlBulkCopyColumnMapping>() { new SqlBulkCopyColumnMapping(nameof(Person.FirstName), "FirstNameINVALID"), new SqlBulkCopyColumnMapping(nameof(Person.LastName), "LastNameINVALID"), new SqlBulkCopyColumnMapping(nameof(Person.MiddleInitial), "MiddleInitialINVALID"), new SqlBulkCopyColumnMapping(nameof(Person.Age), "AgeINVALID"), new SqlBulkCopyColumnMapping(nameof(Person.DateOfBirth), "DateOfBirthINVALID"), new SqlBulkCopyColumnMapping(nameof(Person.Gender), "GenderINVALID") }; var record = Person.Faker.Generate(1).Single(); var columnMappingProvider = MockRepository.GenerateMock <ISqlBulkCopyColumnMappingProvider>(); columnMappingProvider.Stub(x => x.GetColumnMappings()).Return(invalidColumnMappings); using (var sqlBulkCopyWriter = new SqlBulkCopyWriter(columnMappingProvider, SqlBulkCopyWriterTests.DbConnectionString, "dbo.Person")) { sqlBulkCopyWriter.Open(); sqlBulkCopyWriter.WriteRecord(record); try { sqlBulkCopyWriter.Commit(); } catch (AggregateException ae) { throw ae.InnerException; } } }
public void SqlBulkCopyWriter_WriteMultipleRecordsWithCommit_RecordsAreWrittenToDatabase() { var records = Person.Faker.Generate(10); var columnMappingProvider = MockRepository.GenerateMock <ISqlBulkCopyColumnMappingProvider>(); columnMappingProvider.Stub(x => x.GetColumnMappings()).Return(SqlBulkCopyWriterTests.ColumnMappings); using (var sqlBulkCopyWriter = new SqlBulkCopyWriter(columnMappingProvider, SqlBulkCopyWriterTests.DbConnectionString, "dbo.Person")) { sqlBulkCopyWriter.Open(); foreach (var record in records) { sqlBulkCopyWriter.WriteRecord(record); } sqlBulkCopyWriter.Commit(); } using (var testDb = new TestDb(SqlBulkCopyWriterTests.DbConnectionString)) { var recordsInDb = testDb.Delete("dbo.Person", records.ToArray()); Assert.AreEqual(records.Count, recordsInDb.Length); } }
public void SqlBulkCopyWriter_InvalidDestinationTable_RecordsAreWrittenToDatabase() { var records = Person.Faker.Generate(10); var columnMappingProvider = MockRepository.GenerateMock <ISqlBulkCopyColumnMappingProvider>(); columnMappingProvider.Stub(x => x.GetColumnMappings()).Return(SqlBulkCopyWriterTests.ColumnMappings); using (var sqlBulkCopyWriter = new SqlBulkCopyWriter(columnMappingProvider, SqlBulkCopyWriterTests.DbConnectionString, "dbo.PersonINVALID")) { sqlBulkCopyWriter.Open(); foreach (var record in records) { sqlBulkCopyWriter.WriteRecord(record); } try { sqlBulkCopyWriter.Commit(); } catch (AggregateException ae) { throw ae.InnerException; } } }
public void SqlBulkCopyWriter_ColumnMappingProviderThrowsException_ExceptionIsPropogated() { var record = Person.Faker.Generate(1).Single(); var columnMappingProvider = MockRepository.GenerateMock <ISqlBulkCopyColumnMappingProvider>(); columnMappingProvider.Stub(x => x.GetColumnMappings()).Throw(new InternalTestFailureException()); using (var sqlBulkCopyWriter = new SqlBulkCopyWriter(columnMappingProvider, SqlBulkCopyWriterTests.DbConnectionString, "dbo.Person")) { sqlBulkCopyWriter.Open(); sqlBulkCopyWriter.WriteRecord(record); } }