public void Transform_NativeTranformationUnknown_Exception() { var resultSet = new NBi.Core.ResultSet.ResultSet(); resultSet.Load("\t;10"); var transformation = Mock.Of <ITransformationInfo> ( t => t.Language == LanguageType.Native && t.OriginalType == NBi.Core.ResultSet.ColumnType.Text && t.Code == "unknown" ); var provider = new TransformationProvider(); Assert.Throws <NotImplementedTransformationException>(() => provider.Add(0, transformation)); }
public void Transform_SimpleTranformation_Correct() { var resultSet = new NBi.Core.ResultSet.ResultSet(); resultSet.Load("aaaa;10"); var transformation = Mock.Of <ITransformationInfo> ( t => t.Language == LanguageType.CSharp && t.OriginalType == NBi.Core.ResultSet.ColumnType.Text && t.Code == "value.Substring(0,1)" ); var provider = new TransformationProvider(); provider.Add(0, transformation); provider.Transform(resultSet); Assert.That(resultSet.Rows[0][0], Is.EqualTo("a")); }
public void Transform_NativeTranformationBlankToNull_Correct() { var resultSet = new NBi.Core.ResultSet.ResultSet(); resultSet.Load("\t;10"); var transformation = Mock.Of <ITransformationInfo> ( t => t.Language == LanguageType.Native && t.OriginalType == NBi.Core.ResultSet.ColumnType.Text && t.Code == "blank-to-null" ); var provider = new TransformationProvider(); provider.Add(0, transformation); provider.Transform(resultSet); Assert.That(resultSet.Rows[0][0], Is.EqualTo("(null)")); }
public void Transform_TypeSwitch_Correct() { var resultSet = new NBi.Core.ResultSet.ResultSet(); var obj = new object[] { new DateTime(2016, 10, 1) }; resultSet.Load(Enumerable.Repeat(obj, 1)); var transformation = Mock.Of <ITransformationInfo> ( t => t.Language == LanguageType.CSharp && t.OriginalType == NBi.Core.ResultSet.ColumnType.DateTime && t.Code == "value.Month + (value.Year-2000)*12" ); var provider = new TransformationProvider(); provider.Add(0, transformation); provider.Transform(resultSet); Assert.That(resultSet.Rows[0][0], Is.EqualTo(202)); }
public void Transform(NBi.Core.ResultSet.ResultSet resultSet) { foreach (var index in cacheTransformers.Keys) { var tsStart = DateTime.Now; var transformer = cacheTransformers[index]; var newColumn = new DataColumn() { DataType = typeof(object) }; resultSet.Table.Columns.Add(newColumn); foreach (DataRow row in resultSet.Table.Rows) { row[newColumn.Ordinal] = transformer.Execute(row[index]); } resultSet.Table.Columns.RemoveAt(index); newColumn.SetOrdinal(index); Trace.WriteLineIf(NBiTraceSwitch.TraceInfo, string.Format("Time needed to transform column with index {0}: {1}", index, DateTime.Now.Subtract(tsStart).ToString(@"d\d\.hh\h\:mm\m\:ss\s\ \+fff\m\s"))); } }