Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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"));
        }
Exemplo n.º 3
0
        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)"));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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")));
            }
        }