public void Update_sites_removing_bindings()
{
var fabrikamWebSite = new WebSite
{
Name = FabrikamWebSiteName,
Bindings = new List<Binding>
{
new Binding
{
Protocol = "https",
IpAddress = "127.0.0.1",
Port = 8443,
CertificateThumbprint = "12345"
},
new Binding
{
Protocol = "http",
IpAddress = "127.0.0.1",
Port = 8082
}
}
};
var factory = new AzureStorageFactory(CloudStorageAccount.DevelopmentStorageAccount);
var iisManager = new IISManager(LocalSitesPath, TempSitesPath, new SyncStatusRepository(factory), new ConsoleFactory(), LoggerLevel.Debug);
var sites = new List<WebSite> {fabrikamWebSite};
iisManager.UpdateSites(sites, _excludedSites);
var fabrikam = RetrieveWebSite(FabrikamWebSiteName);
Assert.IsNotNull(fabrikam);
Assert.AreEqual(fabrikamWebSite.Name, fabrikam.Name);
Assert.AreEqual(2, fabrikam.Bindings.Count);
var fabrikamBindings = fabrikamWebSite.Bindings.ToList();
fabrikamBindings.RemoveAt(1);
fabrikamWebSite.Bindings = fabrikamBindings;
iisManager.UpdateSites(sites, _excludedSites);
// Asserts
Assert.AreEqual(sites.Count(), RetrieveWebSites().Count() - _excludedSites.Count);
fabrikam = RetrieveWebSite(FabrikamWebSiteName);
Assert.IsNotNull(fabrikam);
Assert.AreEqual(fabrikamWebSite.Name, fabrikam.Name);
Assert.AreEqual(1, fabrikam.Bindings.Count);
Assert.IsTrue(string.IsNullOrEmpty(fabrikam.Bindings.First().Host));
Assert.AreEqual(fabrikamWebSite.Bindings.First().Protocol, fabrikam.Bindings.First().Protocol);
Assert.AreEqual(fabrikamWebSite.Bindings.First().IpAddress, fabrikam.Bindings.First().EndPoint.Address.ToString());
Assert.AreEqual(fabrikamWebSite.Bindings.First().Port, fabrikam.Bindings.First().EndPoint.Port);
// todo: Figure out why these don't work!
//Assert.AreEqual(StoreName.My.ToString().ToUpperInvariant(), fabrikam.Bindings.First().CertificateStoreName.ToUpperInvariant());
//Assert.IsNotNull(fabrikam.Bindings.First().CertificateHash);
}