public void TestCallsAllTransformers() { SourceModel source = new SourceModel(); IntermediateModel intermediate = new IntermediateModel(); Mock <ITransformer <SourceModel, IntermediateModel> > leftTransformerMock = new Mock <ITransformer <SourceModel, IntermediateModel> >(); Mock <ITransformer <IntermediateModel, DestinationModel> > rightTransformerMock = new Mock <ITransformer <IntermediateModel, DestinationModel> >(); leftTransformerMock.Setup(_ => _.Transform(source)).Returns(intermediate).Verifiable(); rightTransformerMock.Setup(_ => _.Transform(intermediate)).Returns(new DestinationModel()).Verifiable(); ITransformer <SourceModel, DestinationModel> tranformer = new TransformerPipeline <SourceModel, IntermediateModel, DestinationModel>( leftTransformerMock.Object, rightTransformerMock.Object ); tranformer.Transform(source); leftTransformerMock.Verify(_ => _.Transform(source), Times.Once); rightTransformerMock.Verify(_ => _.Transform(intermediate), Times.Once); }
public void TestReturnsDataFromLastTransformer() { Mock <ITransformer <SourceModel, IntermediateModel> > leftTransformerMock = new Mock <ITransformer <SourceModel, IntermediateModel> >(); Mock <ITransformer <IntermediateModel, DestinationModel> > rightTransformerMock = new Mock <ITransformer <IntermediateModel, DestinationModel> >(); SourceModel sourceData = new SourceModel(); IntermediateModel intermediateData = new IntermediateModel(); DestinationModel destinationData = new DestinationModel(); leftTransformerMock.Setup(_ => _.Transform(sourceData)).Returns(intermediateData); rightTransformerMock.Setup(_ => _.Transform(intermediateData)).Returns(destinationData); ITransformer <SourceModel, DestinationModel> tranformer = new TransformerPipeline <SourceModel, IntermediateModel, DestinationModel>( leftTransformerMock.Object, rightTransformerMock.Object ); DestinationModel resultData = tranformer.Transform(sourceData); Assert.AreEqual(destinationData, resultData); }