예제 #1
0
        protected bool doMatch(ResultSet actual)
        {
            actualResultSet = actual;

            //This is needed if we don't use //ism
            if (expectedResultSet == null)
            {
                expectedResultSet = GetResultSet(expect);
            }

            if (TransformationProvider != null)
            {
                TransformationProvider.Transform(expectedResultSet);
            }

            result = Engine.Compare(actualResultSet, expectedResultSet);

            //  Math.Min for result.Difference limits the value to 1 if we've two non matching resultsets
            if ((int)persistanceChoice + Math.Min(1, (int)result.Difference) > 1)
            {
                if ((persistanceItems & PersistanceItems.expected) == PersistanceItems.expected)
                {
                    doPersist(expectedResultSet, GetPersistancePath("Expect"));
                }
                if ((persistanceItems & PersistanceItems.actual) == PersistanceItems.actual)
                {
                    doPersist(actualResultSet, GetPersistancePath("Actual"));
                }
            }

            return(result.Difference == ResultSetDifferenceType.None);
        }
        /// <summary>
        /// Commands the callback.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        public override void CommandCallback(object sender, EventArgs e)
        {
            string fileName;
            var    result = SolutionHelper.IsCorrectItemForTransformationOperationsSelected(out fileName);

            if (!result)
            {
                return;
            }

            TransformationProvider.Transform(fileName,
                                             Options.Options.TransfomationFileNameRegexp, Options.Options.SourceFileRegexpMatchIndex);
        }
예제 #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(new ColumnOrdinalIdentifier(0), transformation);
            provider.Transform(resultSet);

            Assert.That(resultSet.Rows[0][0], Is.EqualTo("(null)"));
        }
예제 #4
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(new ColumnOrdinalIdentifier(0), transformation);
            provider.Transform(resultSet);

            Assert.That(resultSet.Rows[0][0], Is.EqualTo("a"));
        }
예제 #5
0
        public void Transform_NativeTranformationTrim_Correct()
        {
            var resultSet = new NBi.Core.ResultSet.ResultSet();

            resultSet.Load(" aaaa  ;10");

            var transformation = Mock.Of <ITransformationInfo>
                                 (
                t => t.Language == LanguageType.Native &&
                t.OriginalType == NBi.Core.ResultSet.ColumnType.Text &&
                t.Code == "text-to-trim"
                                 );

            var provider = new TransformationProvider();

            provider.Add(0, transformation);
            provider.Transform(resultSet);

            Assert.That(resultSet.Rows[0][0], Is.EqualTo("aaaa"));
        }
예제 #6
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(new ColumnOrdinalIdentifier(0), transformation);
            provider.Transform(resultSet);

            Assert.That(resultSet.Rows[0][0], Is.EqualTo(202));
        }
예제 #7
0
        public void Transform_NativeTranformationFirstCharWithContext_Correct()
        {
            var resultSet = new NBi.Core.ResultSet.ResultSet();

            resultSet.Load(new[] { new object[] { "123456789", 6 }, new object[] { "abcdefgh", 2 } });

            var transformation = Mock.Of <ITransformationInfo>
                                 (
                t => t.Language == LanguageType.Native &&
                t.OriginalType == ColumnType.Text &&
                t.Code == "text-to-first-chars(#1)"
                                 );

            var provider = new TransformationProvider(new ServiceLocator(), Context.None);

            provider.Add(new ColumnOrdinalIdentifier(0), transformation);
            provider.Transform(resultSet);

            Assert.That(resultSet.Rows[0][0], Is.EqualTo("123456"));
            Assert.That(resultSet.Rows[1][0], Is.EqualTo("ab"));
        }
예제 #8
0
        public void Transform_SimpleTranformation_CorrectHandlingOfColumnNames()
        {
            var resultSet = new NBi.Core.ResultSet.ResultSet();

            resultSet.Load("aaaa;10");
            resultSet.Columns[0].ColumnName = "MyCol0";
            resultSet.Columns[1].ColumnName = "MyCol1";

            var transformation = Mock.Of <ITransformationInfo>
                                 (
                t => t.Language == LanguageType.CSharp &&
                t.OriginalType == ColumnType.Text &&
                t.Code == "value.Substring(0,1)"
                                 );

            var provider = new TransformationProvider(new ServiceLocator(), Context.None);

            provider.Add(new ColumnOrdinalIdentifier(0), transformation);
            provider.Transform(resultSet);

            Assert.That(resultSet.Columns[0].ColumnName, Is.EqualTo("MyCol0"));
            Assert.That(resultSet.Columns[1].ColumnName, Is.EqualTo("MyCol1"));
            Assert.That(resultSet.Columns.Count, Is.EqualTo(2));
        }