コード例 #1
0
        public void TestsDisposesAllTransformersWhenShifting()
        {
            Mock <IDisposableTransformer <SourceModel, IntermediateModel> >      firstTransformerMock  = new Mock <IDisposableTransformer <SourceModel, IntermediateModel> >();
            Mock <IDisposableTransformer <IntermediateModel, DestinationModel> > secondTransformerMock = new Mock <IDisposableTransformer <IntermediateModel, DestinationModel> >();
            Mock <IDisposableTransformer <DestinationModel, IntermediateModel> > thirdTransformerMock  = new Mock <IDisposableTransformer <DestinationModel, IntermediateModel> >();
            Mock <IDisposableTransformer <IntermediateModel, SourceModel> >      fourthTransformerMock = new Mock <IDisposableTransformer <IntermediateModel, SourceModel> >();

            TransformerPipeline <SourceModel, IntermediateModel, DestinationModel> transformer =
                new TransformerPipeline <SourceModel, IntermediateModel, DestinationModel>(
                    firstTransformerMock.Object,
                    secondTransformerMock.Object
                    );

            TransformerPipeline <DestinationModel, IntermediateModel, DestinationModel> newTransformer =
                transformer
                .PipeShift(fourthTransformerMock.Object)
                .PipeShift(thirdTransformerMock.Object);

            newTransformer.Dispose();

            firstTransformerMock.Verify(_ => _.Dispose(), Times.Once);
            secondTransformerMock.Verify(_ => _.Dispose(), Times.Once);
            thirdTransformerMock.Verify(_ => _.Dispose(), Times.Once);
            fourthTransformerMock.Verify(_ => _.Dispose(), Times.Once);
        }
コード例 #2
0
        public void TestCallsIntermediateTransformerWhenShifting()
        {
            SourceModel       sourceModel       = new SourceModel();
            IntermediateModel intermediateModel = new IntermediateModel();
            DestinationModel  destinationModel  = new DestinationModel();

            Mock <ITransformer <SourceModel, IntermediateModel> >      firstTransformerMock  = new Mock <ITransformer <SourceModel, IntermediateModel> >();
            Mock <ITransformer <IntermediateModel, DestinationModel> > secondTransformerMock = new Mock <ITransformer <IntermediateModel, DestinationModel> >();
            Mock <ITransformer <DestinationModel, IntermediateModel> > thirdTransformerMock  = new Mock <ITransformer <DestinationModel, IntermediateModel> >();
            Mock <ITransformer <IntermediateModel, SourceModel> >      fourthTransformerMock = new Mock <ITransformer <IntermediateModel, SourceModel> >();

            firstTransformerMock.Setup(_ => _.Transform(sourceModel)).Returns(intermediateModel).Verifiable();
            secondTransformerMock.Setup(_ => _.Transform(intermediateModel)).Returns(destinationModel).Verifiable();
            thirdTransformerMock.Setup(_ => _.Transform(destinationModel)).Returns(intermediateModel).Verifiable();
            fourthTransformerMock.Setup(_ => _.Transform(intermediateModel)).Returns(sourceModel).Verifiable();


            TransformerPipeline <SourceModel, IntermediateModel, DestinationModel> transformer =
                new TransformerPipeline <SourceModel, IntermediateModel, DestinationModel>(
                    firstTransformerMock.Object,
                    secondTransformerMock.Object
                    );

            ITransformer <DestinationModel, DestinationModel> newTransformer =
                transformer
                .PipeShift(fourthTransformerMock.Object)
                .PipeShift(thirdTransformerMock.Object);

            newTransformer.Transform(destinationModel);

            firstTransformerMock.Verify(_ => _.Transform(sourceModel), Times.Once);
            secondTransformerMock.Verify(_ => _.Transform(intermediateModel), Times.Once);
            thirdTransformerMock.Verify(_ => _.Transform(destinationModel), Times.Once);
            fourthTransformerMock.Verify(_ => _.Transform(intermediateModel), Times.Once);
        }