public void TransposerTest_ThrowOnDualBatches() { var transposer = new Transposer(); transposer.ProcessPipelineData(dt, new ThrowImmediatelyDataLoadJob(), new GracefulCancellationToken()); var ex = Assert.Throws <NotSupportedException>(() => transposer.ProcessPipelineData(dt, new ThrowImmediatelyDataLoadJob(), new GracefulCancellationToken())); Assert.AreEqual("Error, we received multiple batches, Transposer only works when all the data arrives in a single DataTable", ex.Message); }
public void TransposerTest_TableTransposed() { var transposer = new Transposer(); var actual = transposer.ProcessPipelineData(dt, new ThrowImmediatelyDataLoadJob(), new GracefulCancellationToken()); DataTable expectedResult = new DataTable(); expectedResult.Columns.Add("recipe"); expectedResult.Columns.Add("protein"); expectedResult.Columns.Add("fat"); expectedResult.Columns.Add("carbohydrate"); expectedResult.Rows.Add("Fishcakes", "20", "11", "55"); expectedResult.Rows.Add("Chips", "30", "2", "0"); expectedResult.Rows.Add("Gateau", "40", "33", "5"); for (int i = 0; i < actual.Columns.Count; i++) { Assert.AreEqual(expectedResult.Columns[i].ColumnName, actual.Columns[i].ColumnName); } for (int i = 0; i < expectedResult.Rows.Count; i++) { for (int j = 0; j < actual.Columns.Count; j++) { Assert.AreEqual(expectedResult.Rows[i][j], actual.Rows[i][j]); } } }
public void TransposerTest_ThrowOnEmptyDataTable() { var transposer = new Transposer(); var ex = Assert.Throws <NotSupportedException>(() => transposer.ProcessPipelineData(new DataTable(), new ThrowImmediatelyDataLoadJob(), new GracefulCancellationToken())); Assert.AreEqual("DataTable toProcess had 0 rows and 0 columns, thus it cannot be transposed", ex.Message); }
public void TestTransposerDodgyHeaders() { var dr = dt.Rows.Add("32 GramMax", "55", "0", "5"); var transposer = new Transposer(); transposer.MakeHeaderNamesSane = true; var actual = transposer.ProcessPipelineData(dt, new ThrowImmediatelyDataLoadJob(), new GracefulCancellationToken()); Assert.IsTrue(actual.Columns.Contains("_32GramMax")); dt.Rows.Remove(dr); }