Esempio n. 1
0
        public void Pass_SetProtectionLevel(ProtectionLevel protectionLevel, int versionMajor, int versionMinor, string versionComments, int versionBuild, string description,
                                            string[] packages, string[] connectionManagers, ParameterSetupData[] parameters)
        {
            // Setup
            var xml = XmlGenerators.ProjectManifestFile(protectionLevel, versionMajor, versionMinor, versionComments, versionBuild, description, packages, connectionManagers,
                                                        parameters);
            var path = Path.Combine(_workingFolder, Guid.NewGuid().ToString("N"));

            File.WriteAllText(path, xml);
            var projectManifest = new ProjectManifest();

            projectManifest.Initialize(path, null);

            var desiredProtectionLevel = projectManifest.ProtectionLevel;
            //== ProtectionLevel.DontSaveSensitive
            //? ProtectionLevel.DontSaveSensitive
            // : ProtectionLevel.ServerStorage;

            string savedXml;

            using (var stream = new MemoryStream())
            {
                projectManifest.Save(stream, desiredProtectionLevel, Fakes.RandomString());
                stream.Flush();
                stream.Position = 0;

                var sr = new StreamReader(stream);
                savedXml = sr.ReadToEnd();
            }

            // Execute
            var testXmlDoc = new XmlDocument();

            testXmlDoc.LoadXml(savedXml);
            var projectProtectionLevel      = testXmlDoc.DocumentElement?.Attributes["SSIS:ProtectionLevel"]?.Value;
            var packageProtectionLevelNodes = testXmlDoc.SelectNodes("//SSIS:Properties/SSIS:Property[@SSIS:Name = \"ProtectionLevel\"]", testXmlDoc.GetNameSpaceManager());

            // Assert
            ProtectionLevel testProtectionLevel;

            Assert.True(Enum.TryParse(projectProtectionLevel, out testProtectionLevel));
            Assert.Equal(desiredProtectionLevel, testProtectionLevel);

            Assert.NotNull(packageProtectionLevelNodes);

            foreach (XmlElement packageProtectionElement in packageProtectionLevelNodes)
            {
                Assert.Equal(desiredProtectionLevel, (ProtectionLevel)int.Parse(packageProtectionElement.InnerText));
            }

            Assert.Equal(desiredProtectionLevel, projectManifest.ProtectionLevel);
        }
Esempio n. 2
0
        public void Pass_SetVersion(ProtectionLevel protectionLevel, int versionMajor, int versionMinor, string versionComments, int versionBuild, string description, string[] packages, string[] connectionManagers, ParameterSetupData[] parameters)
        {
            // Setup
            var xml  = XmlGenerators.ProjectManifestFile(protectionLevel, versionMajor, versionMinor, versionComments, versionBuild, description, packages, connectionManagers, parameters);
            var path = Path.Combine(_workingFolder, Guid.NewGuid().ToString("N"));

            File.WriteAllText(path, xml);

            // Execute
            var projectManifest = new ProjectManifest();

            projectManifest.Initialize(path, null);

            var newVersionMajor    = projectManifest.VersionMajor * 2;
            var newVersionMinor    = projectManifest.VersionMinor * 2;
            var newVersionBuild    = projectManifest.VersionBuild * 2;
            var newVersionComments = Fakes.RandomString();
            var newDescription     = Fakes.RandomString();

            projectManifest.VersionBuild    = newVersionBuild;
            projectManifest.VersionMajor    = newVersionMajor;
            projectManifest.VersionMinor    = newVersionMinor;
            projectManifest.VersionComments = newVersionComments;
            projectManifest.Description     = newDescription;

            string savedXml;

            using (var stream = new MemoryStream())
            {
                projectManifest.Save(stream, ProtectionLevel.DontSaveSensitive, Fakes.RandomString());
                stream.Flush();
                stream.Position = 0;

                var sr = new StreamReader(stream);
                savedXml = sr.ReadToEnd();
            }
            var testXmlDoc = new XmlDocument();

            testXmlDoc.LoadXml(savedXml);

            var versionMajorNodes    = testXmlDoc.SelectNodes("/SSIS:Project/SSIS:Properties/SSIS:Property[@SSIS:Name = \"VersionMajor\"]", testXmlDoc.GetNameSpaceManager());
            var versionMinorNodes    = testXmlDoc.SelectNodes("/SSIS:Project/SSIS:Properties/SSIS:Property[@SSIS:Name = \"VersionMinor\"]", testXmlDoc.GetNameSpaceManager());
            var versionBuildNodes    = testXmlDoc.SelectNodes("/SSIS:Project/SSIS:Properties/SSIS:Property[@SSIS:Name = \"VersionBuild\"]", testXmlDoc.GetNameSpaceManager());
            var versionCommentsNodes = testXmlDoc.SelectNodes("/SSIS:Project/SSIS:Properties/SSIS:Property[@SSIS:Name = \"VersionComments\"]", testXmlDoc.GetNameSpaceManager());
            var descriptionNodes     = testXmlDoc.SelectNodes("/SSIS:Project/SSIS:Properties/SSIS:Property[@SSIS:Name = \"Description\"]", testXmlDoc.GetNameSpaceManager());

            // Assert
            Assert.NotNull(versionMajorNodes);
            foreach (XmlElement versionMajorNode in versionMajorNodes)
            {
                Assert.Equal(newVersionMajor, int.Parse(versionMajorNode.InnerText));
            }

            Assert.NotNull(versionMinorNodes);
            foreach (XmlElement versionMinorNode in versionMinorNodes)
            {
                Assert.Equal(newVersionMinor, int.Parse(versionMinorNode.InnerText));
            }

            Assert.NotNull(versionBuildNodes);
            foreach (XmlElement versionBuildNode in versionBuildNodes)
            {
                Assert.Equal(newVersionBuild, int.Parse(versionBuildNode.InnerText));
            }

            Assert.NotNull(versionCommentsNodes);
            foreach (XmlElement versionCommentsNode in versionCommentsNodes)
            {
                Assert.Equal(newVersionComments, versionCommentsNode.InnerText);
            }

            Assert.NotNull(descriptionNodes);
            foreach (XmlElement descriptionNode in descriptionNodes)
            {
                Assert.Equal(newDescription, descriptionNode.InnerText);
            }


            Assert.Equal(newVersionBuild, projectManifest.VersionBuild);
            Assert.Equal(newVersionMajor, projectManifest.VersionMajor);
            Assert.Equal(newVersionMinor, projectManifest.VersionMinor);
            Assert.Equal(newVersionComments, projectManifest.VersionComments);
            Assert.Equal(newDescription, projectManifest.Description);
        }