Esempio n. 1
0
        public void SimpleAsyncFlow()
        {
            //Arrange
            TwoColumnsTableFixture dest2Columns = new TwoColumnsTableFixture("Destination4CustomSource");
            List <string>          Data         = new List <string>()
            {
                "Test1", "Test2", "Test3"
            };
            int _readIndex = 0;
            Func <MySimpleRow> ReadData = () =>
            {
                if (_readIndex == 0)
                {
                    Task.Delay(300).Wait();
                }
                var result = new MySimpleRow()
                {
                    Col1 = _readIndex + 1,
                    Col2 = Data[_readIndex]
                };
                _readIndex++;
                return(result);
            };

            Func <bool> EndOfData = () => _readIndex >= Data.Count;

            //Act
            CustomSource <MySimpleRow>  source = new CustomSource <MySimpleRow>(ReadData, EndOfData);
            DBDestination <MySimpleRow> dest   = new DBDestination <MySimpleRow>(SqlConnection, "Destination4CustomSource");

            source.LinkTo(dest);
            Task sourceT = source.ExecuteAsync();
            Task destT   = dest.Completion();

            //Assert
            Assert.True(RowCountTask.Count(SqlConnection, "Destination4CustomSource") == 0);
            sourceT.Wait();
            destT.Wait();
            dest2Columns.AssertTestData();
        }
        public void UsingFluentVoidPredicate()
        {
            //Arrange
            TwoColumnsTableFixture source2Columns = new TwoColumnsTableFixture("SourceMultipleLinks");

            source2Columns.InsertTestData();
            source2Columns.InsertTestDataSet2();
            TwoColumnsTableFixture dest2Columns = new TwoColumnsTableFixture("DestinationMultipleLinks");

            DBSource <MySimpleRow>          source = new DBSource <MySimpleRow>(SqlConnection, "SourceMultipleLinks");
            DBDestination <MySimpleRow>     dest   = new DBDestination <MySimpleRow>(SqlConnection, "DestinationMultipleLinks");
            RowTransformation <MySimpleRow> trans1 = new RowTransformation <MySimpleRow>(row => row);

            //Act
            source.LinkTo(trans1, row => row.Col1 < 4, row => row.Col1 >= 4).LinkTo(dest);
            Task sourceT = source.ExecuteAsync();
            Task destT   = dest.Completion();

            //Assert
            sourceT.Wait();
            destT.Wait();
            dest2Columns.AssertTestData();
        }
        public void Linking3Transformations()
        {
            //Arrange
            TwoColumnsTableFixture source2Columns = new TwoColumnsTableFixture("SourceMultipleLinks");

            source2Columns.InsertTestData();
            TwoColumnsTableFixture dest2Columns = new TwoColumnsTableFixture("DestinationMultipleLinks");

            DBSource          source = new DBSource(SqlConnection, "SourceMultipleLinks");
            DBDestination     dest   = new DBDestination(SqlConnection, "DestinationMultipleLinks");
            RowTransformation trans1 = new RowTransformation(row => row);
            RowTransformation trans2 = new RowTransformation(row => row);
            RowTransformation trans3 = new RowTransformation(row => row);

            //Act
            source.LinkTo(trans1).LinkTo(trans2).LinkTo(trans3).LinkTo(dest);
            Task sourceT = source.ExecuteAsync();
            Task destT   = dest.Completion();

            //Assert
            sourceT.Wait();
            destT.Wait();
            dest2Columns.AssertTestData();
        }