public void WriteRecord_MultipleDataWritersAndExpandedRecords_AllDataWritersWriteAllExpandedRecords() { var record = new object(); var expandedRecords = new List <object>() { new object(), new object() }; var dataDestination1 = MockRepository.GenerateMock <IDataDestination>(); var dataDestination2 = MockRepository.GenerateMock <IDataDestination>(); var dataWriter1 = MockRepository.GenerateMock <IDataWriter>(); var dataWriter2 = MockRepository.GenerateMock <IDataWriter>(); var recordExpander = MockRepository.GenerateMock <IRecordExpander>(); recordExpander.Expect(x => x.Expand(Arg <object> .Is.Equal(record))).Return(expandedRecords).Repeat.Once(); dataWriter1.Expect(x => x.WriteRecord(Arg <object> .Is.Equal(expandedRecords[0]))).Repeat.Once(); dataWriter1.Expect(x => x.WriteRecord(Arg <object> .Is.Equal(expandedRecords[1]))).Repeat.Once(); dataWriter2.Expect(x => x.WriteRecord(Arg <object> .Is.Equal(expandedRecords[0]))).Repeat.Once(); dataWriter2.Expect(x => x.WriteRecord(Arg <object> .Is.Equal(expandedRecords[1]))).Repeat.Once(); var dataWriters = new Dictionary <IDataDestination, IDataWriter>(); dataWriters.Add(dataDestination1, dataWriter1); dataWriters.Add(dataDestination2, dataWriter2); var expandedDataWriter = new ExpandedDataWriter(dataWriters, recordExpander); expandedDataWriter.WriteRecord(record); recordExpander.VerifyAllExpectations(); dataWriter1.VerifyAllExpectations(); dataWriter2.VerifyAllExpectations(); }
public void WriteRecord_RecordFilterRecordMeedsCriteriaThrowsException_ExceptionIsPropogated() { var record = new object(); var expandedRecords = new List <object>() { new object(), new object() }; var dataDestination1 = MockRepository.GenerateMock <IDataDestination>(); var dataDestination2 = MockRepository.GenerateMock <IDataDestination>(); var recordFilter1 = MockRepository.GenerateMock <IRecordFilter>(); var recordFilter2 = MockRepository.GenerateMock <IRecordFilter>(); var dataWriter1 = MockRepository.GenerateMock <IDataWriter>(); var dataWriter2 = MockRepository.GenerateMock <IDataWriter>(); var recordExpander = MockRepository.GenerateMock <IRecordExpander>(); dataDestination1.Stub(x => x.RecordFilter).Return(recordFilter1); dataDestination2.Stub(x => x.RecordFilter).Return(recordFilter2); recordFilter1.Stub(x => x.MeetsCriteria(Arg <object> .Is.Anything)).Throw(new InternalTestFailureException()); recordFilter2.Stub(x => x.MeetsCriteria(Arg <object> .Is.Anything)).Throw(new InternalTestFailureException()); recordExpander.Stub(x => x.Expand(Arg <object> .Is.Equal(record))).Return(expandedRecords); var dataWriters = new Dictionary <IDataDestination, IDataWriter>(); dataWriters.Add(dataDestination1, dataWriter1); dataWriters.Add(dataDestination2, dataWriter2); var expandedDataWriter = new ExpandedDataWriter(dataWriters, recordExpander); try { expandedDataWriter.WriteRecord(record); } catch (AggregateException ae) { Assert.IsTrue(ae.InnerException is InternalTestFailureException); return; } Assert.Fail(); }
public void WriteRecord_RecordExpanderExpandThrowsException_ExceptionIsPropogated() { var record = new object(); var dataDestination1 = MockRepository.GenerateMock <IDataDestination>(); var dataDestination2 = MockRepository.GenerateMock <IDataDestination>(); var dataWriter1 = MockRepository.GenerateMock <IDataWriter>(); var dataWriter2 = MockRepository.GenerateMock <IDataWriter>(); var recordExpander = MockRepository.GenerateMock <IRecordExpander>(); recordExpander.Stub(x => x.Expand(Arg <object> .Is.Equal(record))).Throw(new InternalTestFailureException()); var dataWriters = new Dictionary <IDataDestination, IDataWriter>(); dataWriters.Add(dataDestination1, dataWriter1); dataWriters.Add(dataDestination2, dataWriter2); var expandedDataWriter = new ExpandedDataWriter(dataWriters, recordExpander); expandedDataWriter.WriteRecord(record); }