示例#1
0
        public void Pass_New_ProjectParameter_InvalidDataType()
        {
            // Setup
            var name         = Fakes.RandomString();
            var value        = Fakes.RandomString();
            var scope        = Fakes.RandomString();
            var xmldoc       = new XmlDocument();
            var parameterXml = XmlGenerators.ProjectFileParameter(name, value, false, Fakes.RandomEnum <DataType>());

            xmldoc.LoadXml(parameterXml);

            var dataTypeNode = xmldoc.SelectSingleNode("//*[@SSIS:Name=\"DataType\"]", xmldoc.GetNameSpaceManager());

            if (dataTypeNode != null)
            {
                dataTypeNode.InnerText = "xyz";
            }

            // Execute
            var parameter = new ProjectParameter(scope, xmldoc.DocumentElement);

            // Assert
            Assert.NotNull(parameter);
            Assert.Equal(null, parameter.ParameterDataType?.Name);
        }
示例#2
0
        public void Pass_SetValue(bool originalNull, bool setToNull, ParameterSource source)
        {
            // Setup
            var name   = Fakes.RandomString();
            var value  = Fakes.RandomString();
            var scope  = Fakes.RandomString();
            var xmldoc = new XmlDocument();
            // var parameterXml = CreateProjectParameterXml(name, false, originalNull, value, DataType.String);
            var parameterXml = XmlGenerators.ProjectFileParameter(name, value, false, DataType.String, originalNull);

            xmldoc.LoadXml(parameterXml);

            // Execute
            var parameter = new ProjectParameter(scope, xmldoc.DocumentElement);

            var newValue = setToNull ? null : Fakes.RandomString();

            parameter.SetValue(newValue, source);
            var testValueFromXml = xmldoc.SelectSingleNode("//*[@SSIS:Name=\"Value\"]", xmldoc.GetNameSpaceManager())?.InnerText;

            // Assert
            Assert.Equal(newValue, parameter.Value);
            Assert.Equal(source, parameter.Source);
            Assert.Equal(newValue, testValueFromXml);
        }
        public void Fail_New_ProjectParameter_InvalidDataType()
        {
            // Setup
            var name         = Fakes.RandomString();
            var value        = Fakes.RandomString();
            var scope        = Fakes.RandomString();
            var xmldoc       = new XmlDocument();
            var parameterXml = XmlGenerators.ProjectFileParameter(name, value, false, Fakes.RandomEnum <DataType>());

            xmldoc.LoadXml(parameterXml);

            var dataTypeNode = xmldoc.SelectSingleNode("//*[@SSIS:Name=\"DataType\"]", xmldoc.GetNameSpaceManager());

            if (dataTypeNode != null)
            {
                dataTypeNode.InnerText = "xyz";
            }

            // Execute
            var exception = Record.Exception(() => new ProjectParameter(scope, xmldoc.DocumentElement));

            // Assert
            Assert.NotNull(exception);
            Assert.IsType <InvalidCastException>(exception);
        }
示例#4
0
        public void Fail_New_ProjectParameter_NoScope()
        {
            // Setup
            var name         = Fakes.RandomString();
            var value        = Fakes.RandomString();
            var xmldoc       = new XmlDocument();
            var parameterXml = XmlGenerators.ProjectFileParameter(name, value, false, Fakes.RandomEnum <DataType>());

            xmldoc.LoadXml(parameterXml);

            // Execute
            var exception = Record.Exception(() => new ProjectParameter(null, xmldoc.DocumentElement));

            // Assert
            Assert.NotNull(exception);
            Assert.IsType <ArgumentNullException>(exception);
        }
示例#5
0
        public void Pass_New_ProjectParameter_CoverDataTypes(DataType type)
        {
            // Setup
            var name         = Fakes.RandomString();
            var value        = Fakes.RandomString();
            var scope        = Fakes.RandomString();
            var xmldoc       = new XmlDocument();
            var parameterXml = XmlGenerators.ProjectFileParameter(name, value, false, type);

            xmldoc.LoadXml(parameterXml);

            // Execute
            var parameter = new ProjectParameter(scope, xmldoc.DocumentElement);

            // Assert
            Assert.NotNull(parameter);
            Assert.Equal((int)type == 1000 ? null : type.ToString("G"), parameter.ParameterDataType?.Name, StringComparer.InvariantCultureIgnoreCase);
        }
        public void Pass_New_ProjectParameter_DataTypeValidation()
        {
            // Setup
            var name         = Fakes.RandomString();
            var value        = "False";
            var scope        = Fakes.RandomString();
            var xmldoc       = new XmlDocument();
            var parameterXml = XmlGenerators.ProjectFileParameter(name, value, false, DataType.Boolean);

            xmldoc.LoadXml(parameterXml);

            // Execute
            var parameter = new ProjectParameter(scope, xmldoc.DocumentElement);

            // Assert
            Assert.NotNull(parameter);
            Assert.Equal("false", parameter.Value);
        }
示例#7
0
        public void Fail_New_ProjectParameter_EmptyName()
        {
            // Setup
            var name         = string.Empty;
            var value        = Fakes.RandomString();
            var xmldoc       = new XmlDocument();
            var parameterXml = XmlGenerators.ProjectFileParameter(name, value, Fakes.RandomBool(), Fakes.RandomEnum <DataType>(), Fakes.RandomBool());

            xmldoc.LoadXml(parameterXml);

            // Execute
            var exception = Record.Exception(() => new ProjectParameter(Fakes.RandomString(), xmldoc.DocumentElement));

            // Assert
            Assert.NotNull(exception);
            Assert.IsType <InvalidXmlException>(exception);
            Assert.Equal(xmldoc.DocumentElement?.OuterXml, ((InvalidXmlException)exception).NodeXml);
            Assert.NotNull(exception.Message);
        }
示例#8
0
        public void Pass_New_ProjectParameter(bool sensitive, bool withValue, DataType type)
        {
            // Setup
            var name         = Fakes.RandomString();
            var value        = Fakes.RandomString();
            var scope        = Fakes.RandomString();
            var xmldoc       = new XmlDocument();
            var parameterXml = XmlGenerators.ProjectFileParameter(name, value, sensitive, type, withValue);

            xmldoc.LoadXml(parameterXml);

            // Execute
            var parameter = new ProjectParameter(scope, xmldoc.DocumentElement);

            // Assert
            Assert.NotNull(parameter);
            Assert.Equal(withValue ? value : null, parameter.Value);
            Assert.Equal(type.ToString("G"), parameter.ParameterDataType.Name, StringComparer.InvariantCultureIgnoreCase);
            Assert.Equal(sensitive, parameter.Sensitive);
            Assert.Equal($"{scope}::{name}", parameter.Name);
            Assert.Equal(ParameterSource.Original, parameter.Source);
        }