예제 #1
0
        public void TestCallsIntermediateTransformersWhenPushing()
        {
            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 <SourceModel, SourceModel> newTransformer =
                transformer
                .PipePush(thirdTransformerMock.Object)
                .PipePush(fourthTransformerMock.Object);

            newTransformer.Transform(sourceModel);

            firstTransformerMock.Verify(_ => _.Transform(sourceModel), Times.Once);
            secondTransformerMock.Verify(_ => _.Transform(intermediateModel), Times.Once);
            thirdTransformerMock.Verify(_ => _.Transform(destinationModel), Times.Once);
            fourthTransformerMock.Verify(_ => _.Transform(intermediateModel), Times.Once);
        }
예제 #2
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);
        }
예제 #3
0
 public MainWindow(TransformerPipeline transformerPipeline)
 {
     _transformer = transformerPipeline.Build(m => m);
     this.InitializeComponent();
     this.Title             = LanguageData.Current.MainWindow_Title;
     btnOpen.Content        = LanguageData.Current.MainWindow_ButtonOpen;
     lblVersion.Content     = $"{VersionInfo.GetCaption()}\t{VersionInfo.GetCopyright()}";
     controller.LogFileView = lfv;
 }
예제 #4
0
        public void TestDisposeDependantsTransformers()
        {
            Mock <IDisposableTransformer <SourceModel, IntermediateModel> >      leftTransformerMock  = new Mock <IDisposableTransformer <SourceModel, IntermediateModel> >();
            Mock <IDisposableTransformer <IntermediateModel, DestinationModel> > rightTransformerMock = new Mock <IDisposableTransformer <IntermediateModel, DestinationModel> >();

            TransformerPipeline <SourceModel, IntermediateModel, DestinationModel> tranformer =
                new TransformerPipeline <SourceModel, IntermediateModel, DestinationModel>(
                    leftTransformerMock.Object,
                    rightTransformerMock.Object
                    );

            tranformer.Dispose();

            leftTransformerMock.Verify(_ => _.Dispose(), Times.Once);
            rightTransformerMock.Verify(_ => _.Dispose(), Times.Once);
        }
예제 #5
0
        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);
        }
예제 #6
0
        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);
        }