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)); }
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()); }
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)); }
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); } }
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); } }