public void RegisterUrlAndNamespace_NsWithPrefixFromUrlWithoutOverwrite()
        {
            var xamlService = new XamlService();

            xamlService.RegisterUrl("test0", "http://zero", false, "test.zero", "test.0");
            xamlService.RegisterNamespace("test1", "test.one", false);

            #region TestBefore

            Assert.True(xamlService.XmlnsDeclarations.Count == 2);
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test0"));
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test1"));

            var element0 = xamlService.XmlnsDeclarations.FirstOrDefault(o => o.Value.Declaration == "http://zero" && o.Value.Prefix == "test0" && o.Value.IsUrlDefinition).Value;
            Assert.True(element0 != null);
            Assert.True(element0.Namespaces.Count == 2);
            Assert.Contains("test.zero", element0.Namespaces);
            Assert.Contains("test.0", element0.Namespaces);

            var element1 = xamlService.XmlnsDeclarations.FirstOrDefault(o => o.Value.Declaration == "test.one" && o.Value.Prefix == "test1" && !o.Value.IsUrlDefinition).Value;
            Assert.True(element1 != null);
            Assert.True(element1.Namespaces.Count == 1);

            #endregion TestBefore

            xamlService.RegisterNamespace("test0", "test.zero", false);

            #region TestAfter

            Assert.True(xamlService.XmlnsDeclarations.Count == 2);
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test0"));
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test1"));

            element0 = xamlService.XmlnsDeclarations.FirstOrDefault(o => o.Value.Declaration == "http://zero" && o.Value.Prefix == "test0" && o.Value.IsUrlDefinition).Value;
            Assert.True(element0 != null);
            Assert.True(element0.Namespaces.Count == 2);
            Assert.Contains("test.zero", element0.Namespaces);
            Assert.Contains("test.0", element0.Namespaces);

            element1 = xamlService.XmlnsDeclarations.FirstOrDefault(o => o.Value.Declaration == "test.one" && o.Value.Prefix == "test1" && !o.Value.IsUrlDefinition).Value;
            Assert.True(element1 != null);
            Assert.True(element1.Namespaces.Count == 1);

            #endregion TestAfter
        }
        public void RegisterNamespace_OnlyNamespaceWithoutOverwrite()
        {
            var xamlService = new XamlService();

            xamlService.RegisterNamespace("test0", "test.zero");
            xamlService.RegisterNamespace("test1", "test.one");

            Assert.True(xamlService.XmlnsDeclarations.Count == 2);
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test0"));
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test1"));
            Assert.Contains(xamlService.XmlnsDeclarations, o => o.Value.Declaration == "test.zero" && o.Value.Prefix == "test0" && !o.Value.IsUrlDefinition);
            Assert.Contains(xamlService.XmlnsDeclarations, o => o.Value.Declaration == "test.one" && o.Value.Prefix == "test1" && !o.Value.IsUrlDefinition);

            xamlService.RegisterNamespace("test2", "test.one", false);

            Assert.True(xamlService.XmlnsDeclarations.Count == 2);
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test0"));
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test1"));
            Assert.Contains(xamlService.XmlnsDeclarations, o => o.Value.Declaration == "test.zero" && o.Value.Prefix == "test0" && !o.Value.IsUrlDefinition);
            Assert.Contains(xamlService.XmlnsDeclarations, o => o.Value.Declaration == "test.one" && o.Value.Prefix == "test1" && !o.Value.IsUrlDefinition);
        }
        public void RegisterNamespace_NothingFound()
        {
            var xamlService = new XamlService();

            xamlService.RegisterNamespace("test0", "test.zero");
            xamlService.RegisterNamespace("test1", "test.one");

            Assert.True(xamlService.XmlnsDeclarations.Count == 2);
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test0"));
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test1"));
            Assert.Contains(xamlService.XmlnsDeclarations, o => o.Value.Declaration == "test.zero" && o.Value.Prefix == "test0" && !o.Value.IsUrlDefinition);
            Assert.Contains(xamlService.XmlnsDeclarations, o => o.Value.Declaration == "test.one" && o.Value.Prefix == "test1" && !o.Value.IsUrlDefinition);

            xamlService.RegisterNamespace("test2", "test.two", true);

            Assert.True(xamlService.XmlnsDeclarations.Count == 3);
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test0"));
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test1"));
            Assert.True(xamlService.XmlnsDeclarations.ContainsKey("test2"));
            Assert.Contains(xamlService.XmlnsDeclarations, o => o.Value.Declaration == "test.zero" && o.Value.Prefix == "test0" && !o.Value.IsUrlDefinition);
            Assert.Contains(xamlService.XmlnsDeclarations, o => o.Value.Declaration == "test.one" && o.Value.Prefix == "test1" && !o.Value.IsUrlDefinition);
            Assert.Contains(xamlService.XmlnsDeclarations, o => o.Value.Declaration == "test.two" && o.Value.Prefix == "test2" && !o.Value.IsUrlDefinition);
        }