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(); }