Example #1
0
        public async Task TransferAsync_TestDataAdapter_DataTransferContextPassed()
        {
            const string SourceAdapterName = "TestSource";
            const string SinkAdapterName   = "TestSink";

            var sourceMock = new Mock <IDataSourceAdapter>();

            sourceMock
            .Setup(m => m.ReadNextAsync(It.IsAny <ReadOutputByRef>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult <IDataItem>(null));

            var sinkMock = new Mock <IDataSinkAdapter>();

            sinkMock
            .Setup(m => m.WriteAsync(It.IsAny <IDataItem>(), It.IsAny <CancellationToken>()))
            .Returns(TaskHelper.NoOp);

            var sourceFactoryMock = new Mock <IDataSourceAdapterFactoryAdapter>();

            sourceFactoryMock
            .Setup(m => m.CreateAsync(It.IsAny <object>(), It.IsAny <IDataTransferContext>(), It.IsAny <CancellationToken>()))
            .Callback <object, IDataTransferContext, CancellationToken>((a, c, ct) =>
                                                                        Assert.AreEqual(SourceAdapterName, c.SourceName, TestResources.InvalidDataSourceNameInTransferContext))
            .Returns(Task.FromResult(sourceMock.Object));

            var sinkFactoryMock = new Mock <IDataSinkAdapterFactoryAdapter>();

            sinkFactoryMock
            .Setup(m => m.CreateAsync(It.IsAny <object>(), It.IsAny <IDataTransferContext>(), It.IsAny <CancellationToken>()))
            .Callback <object, IDataTransferContext, CancellationToken>((a, c, ct) =>
                                                                        Assert.AreEqual(SinkAdapterName, c.SinkName, TestResources.InvalidDataSinkNameInTransferContext))
            .Returns(Task.FromResult(sinkMock.Object));

            var service = new DataTransferService(
                new Dictionary <string, IDataSourceAdapterFactoryAdapter>
            {
                { SourceAdapterName, sourceFactoryMock.Object }
            },
                new Dictionary <string, IDataSinkAdapterFactoryAdapter>
            {
                { SinkAdapterName, sinkFactoryMock.Object }
            },
                Mocks.Of <IDataTransferAction>()
                .Where(a => a.ExecuteAsync(
                           It.IsAny <IDataSourceAdapter>(), It.IsAny <IDataSinkAdapter>(),
                           It.IsAny <ITransferStatistics>(), It.IsAny <CancellationToken>()) == Task.FromResult <object>(null))
                .First()
                );

            await service.TransferAsync(
                SourceAdapterName, null, SinkAdapterName, null,
                new DummyTransferStatisticsMock(),
                CancellationToken.None);
        }
Example #2
0
        public async Task TransferAsync_TestDataAdapters_DisposeCalled()
        {
            const string SourceAdapterName = "TestSource";
            const string SinkAdapterName   = "TestSink";

            var sourceMock = new Mock <IDataSourceAdapter>();

            sourceMock
            .Setup(m => m.ReadNextAsync(It.IsAny <ReadOutputByRef>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult <IDataItem>(null));
            sourceMock
            .Setup(m => m.Dispose())
            .Verifiable();

            var sinkMock = new Mock <IDataSinkAdapter>();

            sinkMock
            .Setup(m => m.WriteAsync(It.IsAny <IDataItem>(), It.IsAny <CancellationToken>()))
            .Returns(TaskHelper.NoOp);
            sinkMock
            .Setup(m => m.Dispose())
            .Verifiable();

            var service = new DataTransferService(
                new Dictionary <string, IDataSourceAdapterFactoryAdapter>
            {
                { SourceAdapterName, Mocks.Of <IDataSourceAdapterFactoryAdapter>()
                  .Where(m => m.CreateAsync(It.IsAny <object>(), It.IsAny <IDataTransferContext>(), It.IsAny <CancellationToken>()) ==
                         Task.FromResult(sourceMock.Object)).First() }
            },
                new Dictionary <string, IDataSinkAdapterFactoryAdapter>
            {
                { SinkAdapterName, Mocks.Of <IDataSinkAdapterFactoryAdapter>()
                  .Where(m => m.CreateAsync(It.IsAny <object>(), It.IsAny <IDataTransferContext>(), It.IsAny <CancellationToken>()) ==
                         Task.FromResult(sinkMock.Object)).First() }
            },
                Mocks.Of <IDataTransferAction>()
                .Where(a => a.ExecuteAsync(
                           It.IsAny <IDataSourceAdapter>(), It.IsAny <IDataSinkAdapter>(),
                           It.IsAny <ITransferStatistics>(), It.IsAny <CancellationToken>()) == Task.FromResult <object>(null))
                .First()
                );

            await service.TransferAsync(
                SourceAdapterName, null, SinkAdapterName, null,
                new DummyTransferStatisticsMock(),
                CancellationToken.None);

            sourceMock.Verify();
            sinkMock.Verify();
        }