public void SortedBySite()
        {
            MockSite site1 = new MockSite();

            site1.Name = "b";
            MockSite site2 = new MockSite();

            site2.Name = "a";
            MockSite site3 = new MockSite();

            site3.Name = "z";

            MockComponent c1 = new MockComponent();

            c1.Site = site1;
            MockComponent c2 = new MockComponent();

            c2.Site = site2;
            MockComponent c3 = new MockComponent();

            c3.Site = site3;

            object[] unsortedObjects       = new object[] { c1, c2, c3 };
            object[] expectedSortedObjects = new object[] { c2, c1, c3 };

            Assert.AreEqual(expectedSortedObjects, PropertyPad.SortObjectsBySiteName(unsortedObjects));
        }
Beispiel #2
0
        public void WildcardOld(int expectedBindings, int iisVersion)
        {
            var site = new MockSite()
            {
                Id       = piramidId,
                Bindings = new List <MockBinding> {
                    new MockBinding()
                    {
                        IP       = DefaultIP,
                        Port     = 80,
                        Host     = "*.b.c.com",
                        Protocol = "http"
                    }
                }
            };
            var iis = new MockIISClient(log, iisVersion)
            {
                MockSites = new[] { site }
            };

            var bindingOptions = new BindingOptions().
                                 WithSiteId(piramidId).
                                 WithIP(DefaultIP).
                                 WithPort(DefaultPort).
                                 WithStore(DefaultStore).
                                 WithThumbprint(newCert);

            iis.AddOrUpdateBindings(new[] { "*.b.c.com" }, bindingOptions, scopeCert);

            Assert.AreEqual(expectedBindings, site.Bindings.Count());
        }
Beispiel #3
0
        public void DuplicateBinding()
        {
            var dup1 = new MockSite()
            {
                Id       = 1,
                Bindings = new List <MockBinding> {
                    new MockBinding()
                    {
                        IP                   = DefaultIP,
                        Port                 = DefaultPort,
                        Host                 = "exists.example.com",
                        Protocol             = "https",
                        CertificateHash      = oldCert1,
                        CertificateStoreName = DefaultStore,
                        SSLFlags             = SSLFlags.None
                    }
                }
            };

            var dup2 = new MockSite()
            {
                Id       = 2,
                Bindings = new List <MockBinding> {
                    new MockBinding()
                    {
                        IP       = DefaultIP,
                        Port     = 80,
                        Host     = "exists.example.com",
                        Protocol = "http"
                    }
                }
            };

            var iis = new MockIISClient(log)
            {
                MockSites = new[] { dup1, dup2 }
            };

            var bindingOptions = new BindingOptions().
                                 WithSiteId(2).
                                 WithIP(DefaultIP).
                                 WithPort(DefaultPort).
                                 WithStore(DefaultStore).
                                 WithThumbprint(newCert);

            iis.AddOrUpdateBindings(new[] { "exists.example.com" }, bindingOptions, scopeCert);
            Assert.AreEqual(1, dup2.Bindings.Count);
        }
        public void OneSiteIsNull()
        {
            MockSite site1 = new MockSite();

            site1.Name = "z";

            MockComponent c1 = new MockComponent();

            c1.Site = site1;
            MockComponent c2 = new MockComponent();

            object[] unsortedObjects       = new object[] { c1, c2 };
            object[] expectedSortedObjects = new object[] { c2, c1 };

            Assert.AreEqual(expectedSortedObjects, PropertyPad.SortObjectsBySiteName(unsortedObjects));
        }
Beispiel #5
0
        public void AddNewMultiple(string storeName, string bindingIp, int bindingPort, SSLFlags inputFlags, SSLFlags expectedFlags)
        {
            var originalBindings = new List <MockBinding> {
                new MockBinding()
                {
                    IP       = "*",
                    Port     = 80,
                    Host     = "site1.example.com",
                    Protocol = "http"
                },
                new MockBinding()
                {
                    IP       = "*",
                    Port     = 80,
                    Host     = "site2.example.com",
                    Protocol = "http"
                }
            };
            var site = new MockSite()
            {
                Id       = httpOnlyId,
                Bindings = originalBindings.ToList()
            };
            var iis = new MockIISClient(log)
            {
                MockSites = new[] { site }
            };
            var bindingOptions = new BindingOptions().
                                 WithSiteId(httpOnlyId).
                                 WithIP(bindingIp).
                                 WithPort(bindingPort).
                                 WithStore(storeName).
                                 WithFlags(inputFlags).
                                 WithThumbprint(newCert);

            iis.AddOrUpdateBindings(new[] { "site1.example.com", "site2.example.com" }, bindingOptions, oldCert1);
            Assert.AreEqual(4, site.Bindings.Count);
            foreach (var newBinding in site.Bindings.Except(originalBindings))
            {
                Assert.AreEqual("https", newBinding.Protocol);
                Assert.AreEqual(storeName, newBinding.CertificateStoreName);
                Assert.AreEqual(newCert, newBinding.CertificateHash);
                Assert.AreEqual(bindingPort, newBinding.Port);
                Assert.AreEqual(bindingIp, newBinding.IP);
                Assert.AreEqual(expectedFlags, newBinding.SSLFlags);
            }
        }
Beispiel #6
0
        public void UpdateWildcardFuzzy(string storeName, string bindingIp, int bindingPort, SSLFlags inputFlags, SSLFlags expectedFlags)
        {
            var originalBindings = new List <MockBinding> {
                new MockBinding()
                {
                    IP              = DefaultIP,
                    Port            = DefaultPort,
                    Host            = "site1.example.com",
                    Protocol        = "https",
                    CertificateHash = scopeCert
                }
            };
            var site = new MockSite()
            {
                Id       = httpOnlyId,
                Bindings = originalBindings.ToList()
            };
            var iis = new MockIISClient(log)
            {
                MockSites = new[] { site }
            };
            var bindingOptions = new BindingOptions().
                                 WithSiteId(httpOnlyId).
                                 WithIP(bindingIp).
                                 WithPort(bindingPort).
                                 WithStore(storeName).
                                 WithFlags(inputFlags).
                                 WithThumbprint(newCert);

            iis.AddOrUpdateBindings(new[] { "*.example.com" }, bindingOptions, oldCert1);

            var expectedBindings = inputFlags.HasFlag(SSLFlags.CentralSSL) ? 2 : 1;

            Assert.AreEqual(expectedBindings, site.Bindings.Count);
            foreach (var newBinding in site.Bindings.Except(originalBindings))
            {
                Assert.AreEqual("https", newBinding.Protocol);
                Assert.AreEqual(storeName, newBinding.CertificateStoreName);
                Assert.AreEqual(newCert, newBinding.CertificateHash);
                Assert.AreEqual(DefaultPort, newBinding.Port);
                Assert.AreEqual(DefaultIP, newBinding.IP);
                Assert.AreEqual(expectedFlags, newBinding.SSLFlags);
            }
        }