public void TryReadRecord_MappingFailure_RecordNotReadAndFailureIsReturned() { var records = new string[] { "Line 1" }; var fieldFailures = new FieldFailure[] { new FieldFailure() { FieldName = "TestField", Message = "Field is invalid." } }; var recordMapper = MockRepository.GenerateMock <IRecordMapper>(); recordMapper.Expect(x => x.TryMap( Arg <object> .Is.Equal(records[0]), out Arg <object> .Out(null).Dummy, out Arg <IEnumerable <FieldFailure> > .Out(fieldFailures).Dummy)) .Return(false) .Repeat.Once(); using (var fileReader = new MockFileReader(records, recordMapper)) { var couldBeRead = fileReader.TryReadRecord(out var record, out var failures); Assert.IsFalse(couldBeRead); Assert.AreEqual(fieldFailures[0], failures.Single()); } recordMapper.VerifyAllExpectations(); }
public void Constructor_RecordIndexAndFieldFailuresAreProvided_PropertiesAreSet() { var recordIndex = 1; var fieldFailures = new FieldFailure[0]; var recordFailure = new RecordFailure(recordIndex, fieldFailures); Assert.AreEqual(recordIndex, recordFailure.RecordIndex); Assert.AreEqual(fieldFailures, recordFailure.FieldFailures); }
public void Constructor_RecordAndWasSuccessfulAndFailuresAreProvided_AllPropertiesAreSet() { var recordIndex = 1; var record = new object(); var wasSuccessful = true; var failures = new FieldFailure[0]; var recordEvaluatedEventArgs = new RecordEvaluatedEventArgs(recordIndex, record, wasSuccessful, failures); Assert.AreEqual(recordIndex, recordEvaluatedEventArgs.RecordIndex); Assert.AreEqual(record, recordEvaluatedEventArgs.Record); Assert.AreEqual(wasSuccessful, recordEvaluatedEventArgs.WasSuccessful); Assert.AreEqual(failures, recordEvaluatedEventArgs.Failures); }
public void TryReadRecord_RecordMapperFailure_RecordIsNotReadAndFailureIsReturned() { var failure = new FieldFailure() { FieldName = nameof(Person.DateOfBirth), Message = "Field is invalid." }; var recordMapper = MockRepository.GenerateMock <IRecordMapper>(); recordMapper.Stub(x => x.TryMap( Arg <object> .Is.Anything, out Arg <object> .Out(null).Dummy, out Arg <IEnumerable <FieldFailure> > .Out(new FieldFailure[] { failure }).Dummy)) .Return(false); var person = Person.Faker.Generate(); using (var testDb = new TestDb(DatabaseReaderTests.DbConnectionString)) { testDb.Insert("dbo.Person", true, person); var connection = new SqlConnection(DatabaseReaderTests.DbConnectionString); var command = new SqlCommand("SELECT * FROM dbo.Person", connection); using (var databaseReader = new DatabaseReader(recordMapper, command)) { databaseReader.Open(); var couldReadRecord = databaseReader.TryReadRecord(out var record, out var failures); Assert.IsFalse(couldReadRecord); Assert.AreEqual(failure, failures.Single()); } } }