Ejemplo n.º 1
0
        public void UsingFluentVoidPredicate()
        {
            //Arrange
            TwoColumnsTableFixture source2Columns = new TwoColumnsTableFixture("SourceMultipleLinks");

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

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

            //Act
            var link1 = source.LinkTo(trans1, row => row.Col1 < 4, row => row.Col1 >= 4);
            var link2 = link1.source.LinkTo(dest);

            using (link1.link)
                using (link2.link)
                {
                    Task sourceT = source.ExecuteAsync();
                    Task destT   = dest.Completion;

                    //Assert
                    sourceT.Wait();
                    destT.Wait();
                    dest2Columns.AssertTestData();
                }
        }
Ejemplo n.º 2
0
        public void ErrorInSql()
        {
            //Arrange
            DbSource source = new DbSource(SqlConnection)
            {
                Sql = "SELECT XYZ FROM ABC"
            };
            MemoryDestination dest = new MemoryDestination();

            source.LinkTo(dest);
            //Act & Assert
            Assert.Throws <SqlException>(() =>
            {
                try
                {
                    Task s = source.ExecuteAsync();
                    Task c = dest.Completion;
                    Task.WaitAll(c, s);
                }
                catch (AggregateException e)
                {
                    throw e.InnerException;
                }
            });
        }
Ejemplo n.º 3
0
        public void Linking3Transformations()
        {
            //Arrange
            TwoColumnsTableFixture source2Columns = new TwoColumnsTableFixture("SourceMultipleLinks");

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

            DbSource <string[]>          source = new DbSource <string[]>("SourceMultipleLinks", SqlConnection);
            DbDestination <string[]>     dest   = new DbDestination <string[]>("DestinationMultipleLinks", SqlConnection);
            RowTransformation <string[]> trans1 = new RowTransformation <string[]>(row => row);
            RowTransformation <string[]> trans2 = new RowTransformation <string[]>(row => row);
            RowTransformation <string[]> trans3 = new RowTransformation <string[]>(row => row);

            //Act
            var linkTo1 = source.LinkTo(trans1);
            var linkTo2 = linkTo1.source.LinkTo(trans2);
            var linkTo3 = linkTo2.source.LinkTo(trans3);
            var linkTo4 = linkTo3.source.LinkTo(dest);

            using (linkTo1.link)
                using (linkTo2.link)
                    using (linkTo3.link)
                        using (linkTo4.link)
                        {
                            Task sourceT = source.ExecuteAsync();
                            Task destT   = dest.Completion;

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