Exemplo n.º 1
0
        public void SetEnterpriseDefaultScriptsTest_NoItemsScriptRegistryFile()
        {
            SqlSync.SqlBuild.SqlBuildFileHelper.DefaultScriptXmlFile = this.fileThree;

            DefaultScriptRegistryFile srFile1 = new DefaultScriptRegistryFile();

            srFile1.ApplyToGroup = "MyGroup";
            File.WriteAllText(this.fileOne, "<?xml version=\"1.0\" encoding=\"utf-8\" ?><DefaultScriptRegistry xmlns=\"http://schemas.mckechney.com/DefaultScriptRegistry.xsd\"></DefaultScriptRegistry>");


            srFile1.FileName = Path.GetFileName(this.fileOne);
            srFile1.Path     = Path.GetDirectoryName(this.fileOne);

            DefaultScriptRegistryFile srFile2 = new DefaultScriptRegistryFile();

            srFile2.ApplyToGroup = "NotMyGroup";
            srFile2.FileName     = Path.GetFileName(this.fileTwo);
            srFile2.Path         = Path.GetDirectoryName(this.fileTwo);

            List <DefaultScriptRegistryFile> defaultScriptRegs = new List <DefaultScriptRegistryFile>();

            defaultScriptRegs.Add(srFile1);
            defaultScriptRegs.Add(srFile2);

            List <string> groupMemberships = new List <string>(new string[] { "Group1", "Group2", "MyGroup" });
            bool          expected         = false;
            bool          actual;

            actual = DefaultScriptHelper.SetEnterpriseDefaultScripts(defaultScriptRegs, groupMemberships);
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 2
0
        public void SetEnterpriseDefaultScriptsTest_NoMatchingScriptRegistryFile()
        {
            SqlSync.SqlBuild.SqlBuildFileHelper.DefaultScriptXmlFile = this.fileThree;

            DefaultScriptRegistryFile srFile1 = new DefaultScriptRegistryFile();

            srFile1.ApplyToGroup = "ReallyNotMyGroup";
            File.WriteAllText(this.fileOne, String.Format(Properties.Resources.DefaultScriptRegistryWithToken, this.fileOne));
            srFile1.FileName = Path.GetFileName(this.fileOne);
            srFile1.Path     = Path.GetDirectoryName(this.fileOne);

            DefaultScriptRegistryFile srFile2 = new DefaultScriptRegistryFile();

            srFile2.ApplyToGroup = "NotMyGroup";
            srFile2.FileName     = Path.GetFileName(this.fileTwo);
            srFile2.Path         = Path.GetDirectoryName(this.fileTwo);

            List <DefaultScriptRegistryFile> defaultScriptRegs = new List <DefaultScriptRegistryFile>();

            defaultScriptRegs.Add(srFile1);
            defaultScriptRegs.Add(srFile2);

            List <string> groupMemberships = new List <string>(new string[] { "Group1", "Group2", "MyGroup" });
            bool          expected         = false;
            bool          actual;

            actual = DefaultScriptHelper.SetEnterpriseDefaultScripts(defaultScriptRegs, groupMemberships);
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 3
0
        public void GetApplicableDefaultScriptRegTest_EmptyGroups()
        {
            DefaultScriptRegistryFile srFile1 = new DefaultScriptRegistryFile();

            srFile1.ApplyToGroup = "ReallyNotMyGroup";
            srFile1.FileName     = Path.GetFileName(this.fileOne);
            srFile1.Path         = Path.GetDirectoryName(this.fileOne);

            DefaultScriptRegistryFile srFile2 = new DefaultScriptRegistryFile();

            srFile2.ApplyToGroup = "NotMyGroup";
            srFile2.FileName     = Path.GetFileName(this.fileTwo);
            srFile2.Path         = Path.GetDirectoryName(this.fileTwo);

            List <DefaultScriptRegistryFile> defaultScriptRegs = new List <DefaultScriptRegistryFile>();

            defaultScriptRegs.Add(srFile1);
            defaultScriptRegs.Add(srFile2);

            List <string> groupMemberships = new List <string>();

            DefaultScriptRegistryFile actual;

            actual = DefaultScriptHelper.GetApplicableDefaultScriptReg(defaultScriptRegs, groupMemberships);
            Assert.IsNull(actual);
        }
Exemplo n.º 4
0
        public void GetApplicableDefaultScriptRegTest_FoundOneMatch_SecondInList()
        {
            DefaultScriptRegistryFile srFile1 = new DefaultScriptRegistryFile();

            srFile1.ApplyToGroup = "MyGroup";
            srFile1.FileName     = Path.GetFileName(this.fileOne);
            srFile1.Path         = Path.GetDirectoryName(this.fileOne);

            DefaultScriptRegistryFile srFile2 = new DefaultScriptRegistryFile();

            srFile2.ApplyToGroup = "NotMyGroup";
            srFile2.FileName     = Path.GetFileName(this.fileTwo);
            srFile2.Path         = Path.GetDirectoryName(this.fileTwo);

            List <DefaultScriptRegistryFile> defaultScriptRegs = new List <DefaultScriptRegistryFile>();

            defaultScriptRegs.Add(srFile2);
            defaultScriptRegs.Add(srFile1);


            List <string> groupMemberships = new List <string>(new string[] { "MyGroup", "Group1", "Group2" });

            DefaultScriptRegistryFile actual;

            actual = DefaultScriptHelper.GetApplicableDefaultScriptReg(defaultScriptRegs, groupMemberships);
            Assert.IsNotNull(actual);
            Assert.IsInstanceOfType(actual, typeof(DefaultScriptRegistryFile));
            Assert.AreEqual(Path.GetFileName(this.fileOne), actual.FileName);
        }
Exemplo n.º 5
0
        internal static DefaultScriptRegistryFile GetApplicableDefaultScriptReg(List <DefaultScriptRegistryFile> defaultScriptRegs, List <string> groupMemberships)
        {
            try
            {
                if (defaultScriptRegs == null || groupMemberships == null)
                {
                    return(null);
                }

                var myDefaults = from defReg in defaultScriptRegs
                                 join grp in groupMemberships on defReg.ApplyToGroup.ToLower() equals grp.ToLower()
                                 select new { defReg, grp };

                if (myDefaults.Count() == 0)
                {
                    log.LogInformation($"No DefaultScriptRegistryFile matches found for groups: {String.Join("; ", groupMemberships.ToArray())}");
                    return(null);
                }
                else
                {
                    DefaultScriptRegistryFile tmp = myDefaults.ToList()[0].defReg;
                    log.LogDebug($"Matched default script registry: {tmp.FileName} to {myDefaults.ToList()[0].grp}");

                    return(tmp);
                }
            }
            catch (Exception exe)
            {
                log.LogError(exe, "Error matching DefaultScriptRegistryFile to group memberships");
                return(null);
            }
        }
Exemplo n.º 6
0
        public static bool SetEnterpriseDefaultScripts(List <DefaultScriptRegistryFile> defaultScriptRegs, List <string> groupMemberships)
        {
            DefaultScriptRegistryFile defaultReg = GetApplicableDefaultScriptReg(defaultScriptRegs, groupMemberships);

            if (defaultReg == null)
            {
                return(false);
            }

            if (!ValidateLocalToEnterprise(SqlBuildFileHelper.DefaultScriptXmlFile, Path.Combine(defaultReg.Path, defaultReg.FileName)))
            {
                if (!CopyEnterpriseToLocal(SqlBuildFileHelper.DefaultScriptXmlFile, Path.Combine(defaultReg.Path, defaultReg.FileName)))
                {
                    return(false);
                }
            }

            sb.DefaultScriptRegistry reg = GetEnterpriseRegistrySetting(SqlBuildFileHelper.DefaultScriptXmlFile);
            if (reg == null)
            {
                return(false);
            }

            if (reg.Items == null)
            {
                log.LogWarning($"The enterprise default script registry file contains no default script items! ({Path.Combine(defaultReg.Path, defaultReg.FileName)}");
                return(false);
            }

            string localScriptPath = Path.GetDirectoryName(SqlBuildFileHelper.DefaultScriptXmlFile);

            foreach (sb.DefaultScript item in reg.Items)
            {
                if (!ValidateLocalToEnterprise(Path.Combine(localScriptPath, item.ScriptName), Path.Combine(defaultReg.Path, item.ScriptName)))
                {
                    CopyEnterpriseToLocal(Path.Combine(localScriptPath, item.ScriptName), Path.Combine(defaultReg.Path, item.ScriptName));
                }
            }


            return(true);
        }