Exemplo n.º 1
0
        public void AddSites()
        {
            SiteDomainMapper siteDomainMapper = CreateSut();

            siteDomainMapper.AddSite("site1", "domain1.com", "domain1.net", "domain1.org");
            siteDomainMapper.AddSite("site2", "domain2.com", "domain2.net", "domain2.org");

            Dictionary <string, string[]> sites = siteDomainMapper.Sites;

            Assert.AreEqual(2, sites.Count);

            Assert.Contains("site1", sites.Keys);
            Assert.Contains("site2", sites.Keys);

            string[] domains = sites["site1"];
            Assert.AreEqual(3, domains.Length);
            Assert.Contains("domain1.com", domains);
            Assert.Contains("domain1.net", domains);
            Assert.Contains("domain1.org", domains);

            domains = sites["site2"];
            Assert.AreEqual(3, domains.Length);
            Assert.Contains("domain2.com", domains);
            Assert.Contains("domain2.net", domains);
            Assert.Contains("domain2.org", domains);
        }
Exemplo n.º 2
0
        public void BindMoreSites()
        {
            SiteDomainMapper siteDomainMapper = CreateSut();

            siteDomainMapper.AddSite("site1", "domain1.com", "domain1.net", "domain1.org");
            siteDomainMapper.AddSite("site2", "domain2.com", "domain2.net", "domain2.org");
            siteDomainMapper.AddSite("site3", "domain3.com", "domain3.net", "domain3.org");
            siteDomainMapper.AddSite("site4", "domain4.com", "domain4.net", "domain4.org");

            siteDomainMapper.BindSites("site1", "site2");
            siteDomainMapper.BindSites("site1", "site3");

            Dictionary <string, List <string> > bindings = siteDomainMapper.Bindings;

            Assert.AreEqual(3, bindings.Count);
            Assert.Contains("site1", bindings.Keys);
            Assert.Contains("site2", bindings.Keys);
            Assert.Contains("site3", bindings.Keys);

            List <string> others = bindings["site1"];

            Assert.AreEqual(2, others.Count);
            Assert.Contains("site2", others);
            Assert.Contains("site3", others);

            others = bindings["site2"];
            Assert.AreEqual(2, others.Count);
            Assert.Contains("site1", others);
            Assert.Contains("site3", others);

            others = bindings["site3"];
            Assert.AreEqual(2, others.Count);
            Assert.Contains("site1", others);
            Assert.Contains("site2", others);
        }
Exemplo n.º 3
0
        public void MapDomainWithScheme()
        {
            SiteDomainMapper siteDomainMapper = CreateSut();

            siteDomainMapper.AddSite("site1", "domain1.com", "domain1.net", "domain1.org");
            siteDomainMapper.AddSite("site2", "domain2.com", "domain2.net", "domain2.org");
            siteDomainMapper.AddSite("site3", "domain3.com", "domain3.net", "domain3.org");
            siteDomainMapper.AddSite("site4", "https://domain4.com", "https://domain4.net", "https://domain4.org");

            var current = new Uri("https://domain1.com/foo/bar");

            Domain[] domains = new[]
            {
                new Domain(1, "domain2.com", -1, s_cultureFr, false),
                new Domain(1, "domain1.com", -1, s_cultureGb, false),
            };
            DomainAndUri[] domainAndUris = DomainAndUris(current, domains);
            string         output        = siteDomainMapper.MapDomain(domainAndUris, current, s_cultureFr, s_cultureFr).Uri.ToString();

            Assert.AreEqual("https://domain1.com/", output);

            // will pick it all right
            current = new Uri("https://domain1.com/foo/bar");
            domains = new[]
            {
                new Domain(1, "https://domain1.com", -1, s_cultureFr, false),
                new Domain(1, "https://domain2.com", -1, s_cultureGb, false)
            };
            domainAndUris = DomainAndUris(current, domains);
            output        = siteDomainMapper.MapDomain(domainAndUris, current, s_cultureFr, s_cultureFr).Uri.ToString();
            Assert.AreEqual("https://domain1.com/", output);

            current = new Uri("https://domain1.com/foo/bar");
            domains = new[]
            {
                new Domain(1, "https://domain1.com", -1, s_cultureFr, false),
                new Domain(1, "https://domain4.com", -1, s_cultureGb, false)
            };
            domainAndUris = DomainAndUris(current, domains);
            output        = siteDomainMapper.MapDomain(domainAndUris, current, s_cultureFr, s_cultureFr).Uri.ToString();
            Assert.AreEqual("https://domain1.com/", output);

            current = new Uri("https://domain4.com/foo/bar");
            domains = new[]
            {
                new Domain(1, "https://domain1.com", -1, s_cultureFr, false),
                new Domain(1, "https://domain4.com", -1, s_cultureGb, false)
            };
            domainAndUris = DomainAndUris(current, domains);
            output        = siteDomainMapper.MapDomain(domainAndUris, current, s_cultureFr, s_cultureFr).Uri.ToString();
            Assert.AreEqual("https://domain4.com/", output);
        }
Exemplo n.º 4
0
        public void MapDomain()
        {
            SiteDomainMapper siteDomainMapper = CreateSut();

            siteDomainMapper.AddSite("site1", "domain1.com", "domain1.net", "domain1.org");
            siteDomainMapper.AddSite("site2", "domain2.com", "domain2.net", "domain2.org");
            siteDomainMapper.AddSite("site3", "domain3.com", "domain3.net", "domain3.org");
            siteDomainMapper.AddSite("site4", "domain4.com", "domain4.net", "domain4.org");

            // current is a site1 uri, domains contain current
            // so we'll get current
            var    current = new Uri("http://domain1.com/foo/bar");
            string output  = siteDomainMapper.MapDomain(
                new[]
            {
                new DomainAndUri(new Domain(1, "domain1.com", -1, s_cultureFr, false), current),
                new DomainAndUri(new Domain(1, "domain2.com", -1, s_cultureGb, false), current),
            }, current,
                s_cultureFr,
                s_cultureFr).Uri.ToString();

            Assert.AreEqual("http://domain1.com/", output);

            // current is a site1 uri, domains do not contain current
            // so we'll get the corresponding site1 domain
            current = new Uri("http://domain1.com/foo/bar");
            output  = siteDomainMapper.MapDomain(
                new[]
            {
                new DomainAndUri(new Domain(1, "domain1.net", -1, s_cultureFr, false), current),
                new DomainAndUri(new Domain(1, "domain2.net", -1, s_cultureGb, false), current)
            }, current,
                s_cultureFr,
                s_cultureFr).Uri.ToString();
            Assert.AreEqual("http://domain1.net/", output);

            // current is a site1 uri, domains do not contain current
            // so we'll get the corresponding site1 domain
            // order does not matter
            current = new Uri("http://domain1.com/foo/bar");
            output  = siteDomainMapper.MapDomain(
                new[]
            {
                new DomainAndUri(new Domain(1, "domain2.net", -1, s_cultureFr, false), current),
                new DomainAndUri(new Domain(1, "domain1.net", -1, s_cultureGb, false), current)
            }, current,
                s_cultureFr,
                s_cultureFr).Uri.ToString();
            Assert.AreEqual("http://domain1.net/", output);
        }
Exemplo n.º 5
0
        public void AddRemoveSites()
        {
            SiteDomainMapper siteDomainMapper = CreateSut();

            siteDomainMapper.AddSite("site1", "domain1.com", "domain1.net", "domain1.org");
            siteDomainMapper.AddSite("site2", "domain2.com", "domain2.net", "domain2.org");

            Dictionary <string, string[]> sites = siteDomainMapper.Sites;

            siteDomainMapper.RemoveSite("site1");
            siteDomainMapper.RemoveSite("site3");

            Assert.AreEqual(1, sites.Count);

            Assert.Contains("site2", sites.Keys);
        }
Exemplo n.º 6
0
        public void AddInvalidSite(string domain)
        {
            SiteDomainMapper siteDomainMapper = CreateSut();

            Assert.Throws <ArgumentOutOfRangeException>(() => siteDomainMapper.AddSite("site1", domain));
        }
Exemplo n.º 7
0
        public void AddValidSite(string domain)
        {
            SiteDomainMapper siteDomainMapper = CreateSut();

            siteDomainMapper.AddSite("site1", domain);
        }
Exemplo n.º 8
0
        public void MapDomains()
        {
            SiteDomainMapper siteDomainMapper = CreateSut();

            siteDomainMapper.AddSite("site1", "domain1.com", "domain1.net", "domain1.org");
            siteDomainMapper.AddSite("site2", "domain2.com", "domain2.net", "domain2.org");
            siteDomainMapper.AddSite("site3", "domain3.com", "domain3.net", "domain3.org");
            siteDomainMapper.AddSite("site4", "domain4.com", "domain4.net", "domain4.org");

            // the rule is:
            // - exclude the current domain
            // - exclude what MapDomain would return
            // - return all domains from same site, or bound sites

            // current is a site1 uri, domains contains current
            var current = new Uri("http://domain1.com/foo/bar");

            DomainAndUri[] output = siteDomainMapper.MapDomains(
                new[]
            {
                new DomainAndUri(new Domain(1, "domain1.com", -1, s_cultureFr, false), current),     // no: current + what MapDomain would pick
                new DomainAndUri(new Domain(1, "domain2.com", -1, s_cultureGb, false), current),     // no: not same site
                new DomainAndUri(new Domain(1, "domain3.com", -1, s_cultureGb, false), current),     // no: not same site
                new DomainAndUri(new Domain(1, "domain4.com", -1, s_cultureGb, false), current),     // no: not same site
                new DomainAndUri(new Domain(1, "domain1.org", -1, s_cultureGb, false), current),     // yes: same site (though bogus setup)
            },
                current,
                true,
                s_cultureFr,
                s_cultureFr).ToArray();

            Assert.AreEqual(1, output.Count());
            Assert.Contains("http://domain1.org/", output.Select(d => d.Uri.ToString()).ToArray());

            // current is a site1 uri, domains does not contain current
            current = new Uri("http://domain1.com/foo/bar");
            output  = siteDomainMapper.MapDomains(
                new[]
            {
                new DomainAndUri(new Domain(1, "domain1.net", -1, s_cultureFr, false), current),     // no: what MapDomain would pick
                new DomainAndUri(new Domain(1, "domain2.com", -1, s_cultureGb, false), current),     // no: not same site
                new DomainAndUri(new Domain(1, "domain3.com", -1, s_cultureGb, false), current),     // no: not same site
                new DomainAndUri(new Domain(1, "domain4.com", -1, s_cultureGb, false), current),     // no: not same site
                new DomainAndUri(new Domain(1, "domain1.org", -1, s_cultureGb, false), current),     // yes: same site (though bogus setup)
            },
                current,
                true,
                s_cultureFr,
                s_cultureFr).ToArray();

            Assert.AreEqual(1, output.Count());
            Assert.Contains("http://domain1.org/", output.Select(d => d.Uri.ToString()).ToArray());

            siteDomainMapper.BindSites("site1", "site3");
            siteDomainMapper.BindSites("site2", "site4");

            // current is a site1 uri, domains contains current
            current = new Uri("http://domain1.com/foo/bar");
            output  = siteDomainMapper.MapDomains(
                new[]
            {
                new DomainAndUri(new Domain(1, "domain1.com", -1, s_cultureFr, false), current),     // no: current + what MapDomain would pick
                new DomainAndUri(new Domain(1, "domain2.com", -1, s_cultureGb, false), current),     // no: not same site
                new DomainAndUri(new Domain(1, "domain3.com", -1, s_cultureGb, false), current),     // yes: bound site
                new DomainAndUri(new Domain(1, "domain3.org", -1, s_cultureGb, false), current),     // yes: bound site
                new DomainAndUri(new Domain(1, "domain4.com", -1, s_cultureGb, false), current),     // no: not same site
                new DomainAndUri(new Domain(1, "domain1.org", -1, s_cultureGb, false), current),     // yes: same site (though bogus setup)
            },
                current,
                true,
                s_cultureFr,
                s_cultureFr).ToArray();

            Assert.AreEqual(3, output.Count());
            Assert.Contains("http://domain1.org/", output.Select(d => d.Uri.ToString()).ToArray());
            Assert.Contains("http://domain3.com/", output.Select(d => d.Uri.ToString()).ToArray());
            Assert.Contains("http://domain3.org/", output.Select(d => d.Uri.ToString()).ToArray());

            // current is a site1 uri, domains does not contain current
            current = new Uri("http://domain1.com/foo/bar");
            output  = siteDomainMapper.MapDomains(
                new[]
            {
                new DomainAndUri(new Domain(1, "domain1.net", -1, s_cultureFr, false), current),     // no: what MapDomain would pick
                new DomainAndUri(new Domain(1, "domain2.com", -1, s_cultureGb, false), current),     // no: not same site
                new DomainAndUri(new Domain(1, "domain3.com", -1, s_cultureGb, false), current),     // yes: bound site
                new DomainAndUri(new Domain(1, "domain3.org", -1, s_cultureGb, false), current),     // yes: bound site
                new DomainAndUri(new Domain(1, "domain4.com", -1, s_cultureGb, false), current),     // no: not same site
                new DomainAndUri(new Domain(1, "domain1.org", -1, s_cultureGb, false), current),     // yes: same site (though bogus setup)
            }, current,
                true,
                s_cultureFr,
                s_cultureFr).ToArray();

            Assert.AreEqual(3, output.Count());
            Assert.Contains("http://domain1.org/", output.Select(d => d.Uri.ToString()).ToArray());
            Assert.Contains("http://domain3.com/", output.Select(d => d.Uri.ToString()).ToArray());
            Assert.Contains("http://domain3.org/", output.Select(d => d.Uri.ToString()).ToArray());
        }