public void DbNullValueTest() { string OmegaLul = "HoHoHaHa"; try { CreateTestTable(); UpdateTestTable(); PipelineContext context = new PipelineContext() { SourceTableName = "dbo.ConcurrentSqlExtractorTest" , DbNullStringValue = OmegaLul }; ConcurrentSqlExtractor reader = new ConcurrentSqlExtractor(context); BoundedConcurrentQueu <object[]> output = new BoundedConcurrentQueu <object[]>(); object[] row = null; while (reader.TryExtractRecord(out row)) { output.TryAdd(row); } Assert.IsTrue(output.Count == 5); object[] val = null; output.TryTake(out val); Assert.AreEqual(expected: OmegaLul, actual: val[0]); } finally { DestroyTestTable(); } }
public void TryExtractRecordTest() { try { CreateTestTable(); ConcurrentSqlExtractor reader = new ConcurrentSqlExtractor(context); BoundedConcurrentQueu <object[]> output = new BoundedConcurrentQueu <object[]>(); Action action = () => { object[] currObject = null; while (reader.TryExtractRecord(out currObject)) { output.TryAdd(currObject); } }; List <Task> tasks = new List <Task>(); for (int i = 0; i < 3; i++) { tasks.Add(Task.Factory.StartNew(action)); } Task.WhenAll(tasks).Wait(); Assert.IsTrue(output.Count == 5); } finally { DestroyTestTable(); } }
public void SkipperinoCappucinoMachiatoTest() { try { CreateTestTable(); ConcurrentSqlExtractor reader = new ConcurrentSqlExtractor(context); BoundedConcurrentQueu <object[]> output = new BoundedConcurrentQueu <object[]>(); object[] row = null; Assert.IsTrue(reader.TrySkipRecord()); Assert.IsTrue(reader.TrySkipRecord()); while (reader.TryExtractRecord(out row)) { output.TryAdd(row); } Assert.IsTrue(output.Count == 3); } finally { DestroyTestTable(); } }