public void Update_sites_with_initial_bindings()
{
var contosoWebSite = new WebSite
{
Name = ContosoWebSiteName,
Bindings = new List<Binding>
{
new Binding
{
Protocol = "http",
IpAddress = "*",
Port = 8081,
HostName = "contoso.com"
}
}
};
var fabrikamWebSite = new WebSite
{
Name = FabrikamWebSiteName,
Bindings = new List<Binding>
{
new Binding
{
Protocol = "https",
IpAddress = "*",
Port = 8443,
CertificateThumbprint = "12354"
},
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> {contosoWebSite, fabrikamWebSite};
iisManager.UpdateSites(sites, _excludedSites);
// Asserts
Assert.AreEqual(sites.Count, RetrieveWebSites().Count() - _excludedSites.Count);
var contoso = RetrieveWebSite(ContosoWebSiteName);
Assert.IsNotNull(contoso);
Assert.AreEqual(contosoWebSite.Name, contoso.Name);
Assert.AreEqual(contosoWebSite.Bindings.Count(), contoso.Bindings.Count);
Assert.AreEqual(contosoWebSite.Bindings.First().HostName, contoso.Bindings.First().Host);
Assert.AreEqual(contosoWebSite.Bindings.First().Protocol, contoso.Bindings.First().Protocol);
Assert.AreEqual("0.0.0.0", contoso.Bindings.First().EndPoint.Address.ToString());
Assert.AreEqual(contosoWebSite.Bindings.First().Port, contoso.Bindings.First().EndPoint.Port);
Assert.IsNull(contoso.Bindings.First().CertificateHash);
var fabrikam = RetrieveWebSite(FabrikamWebSiteName);
Assert.IsNotNull(fabrikam);
Assert.AreEqual(fabrikamWebSite.Name, fabrikam.Name);
Assert.AreEqual(fabrikamWebSite.Bindings.Count(), fabrikam.Bindings.Count);
Assert.IsTrue(string.IsNullOrEmpty(fabrikam.Bindings.First().Host));
Assert.AreEqual(fabrikamWebSite.Bindings.First().Protocol, fabrikam.Bindings.First().Protocol);
Assert.AreEqual(string.Empty, fabrikam.Bindings.First().Host);
Assert.AreEqual("0.0.0.0", 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);
Assert.IsTrue(string.IsNullOrEmpty(fabrikam.Bindings.Last().Host));
Assert.AreEqual(fabrikamWebSite.Bindings.Last().Protocol, fabrikam.Bindings.Last().Protocol);
Assert.AreEqual(fabrikamWebSite.Bindings.Last().IpAddress, fabrikam.Bindings.Last().EndPoint.Address.ToString());
Assert.AreEqual(fabrikamWebSite.Bindings.Last().Port, fabrikam.Bindings.Last().EndPoint.Port);
Assert.IsNull(fabrikam.Bindings.Last().CertificateHash);
}