public void GetApplications_ReturnsValidApplication() { // Arrange var ipath = _environment.GlobalPath + "\\Feature"; var snapshot = Mock.Of <IOptionsSnapshot <AcumaticaSettings> >(p => p.Value == _environment); var iapp = new IisApplication { Path = ipath + "\\App", Uris = new List <string> { "http://machine/app", "https://machine:533/app" }, Version = "7.00.0001" }; var site = new IisSite { IisApplications = Enumerable.Repeat(iapp, 1), Uris = new List <string> { "http://machine/", "https://machine:533/" } }; var iismanager = Mock.Of <IIisManager>(m => m.GetIisSite(_environment.DefaultSiteName) == site); var filewrapper = new Mock <IFileWrapper>(); filewrapper.Setup(f => f.GetChilds(_environment.GlobalPath)).Returns(Enumerable.Repeat(ipath, 1)); filewrapper.Setup(f => f.GetFileName(It.IsAny <string>())).Returns <string>(Path.GetFileNameWithoutExtension); filewrapper.Setup(f => f.GetParentPath(It.IsAny <string>())).Returns <string>(v => Directory.GetParent(v).FullName); filewrapper.Setup(f => f.GetVersion(It.IsAny <string>())).Returns(iapp.Version); filewrapper.Setup(f => f.IsExists(It.IsAny <string>())).Returns(true); filewrapper.Setup(f => f.IsFolder(It.IsAny <string>())).Returns(true); var service = new AcIisService(snapshot, iismanager, filewrapper.Object); // Act var result = service.GetApplications().ToList(); // Assert Assert.True(result.Count == 1); var app = result.First(); Assert.Equal("Feature", app.InstallationName); Assert.Equal("App", app.Name); Assert.Equal(iapp.Path, app.PhysicalPath); Assert.Equal(iapp.Version, app.Version); Assert.Equal(iapp.Uris, app.Uris); }
internal WebApplication( string name, string installationPath, bool supportsSecureConnections, InstallationStandardWebApplication configuration, string installationFullShortName, bool systemHasMultipleWebApplications) { Name = name; Path = EwlStatics.CombinePaths(installationPath, name); SupportsSecureConnections = supportsSecureConnections; IisApplication = configuration.IisApplication; var site = configuration.IisApplication as Site; var siteHostName = site?.HostNames.First(); var virtualDirectory = configuration.IisApplication as VirtualDirectory; if (virtualDirectory != null && virtualDirectory.Name == null) { virtualDirectory.Name = installationFullShortName + (systemHasMultipleWebApplications ? name.EnglishToPascal() : ""); } // We must pass values for all components since we will not have defaults to fall back on when getting the URL string for this object. DefaultBaseUrl = configuration.DefaultBaseUrl != null ? new BaseUrl( configuration.DefaultBaseUrl.Host, configuration.DefaultBaseUrl.NonsecurePortSpecified ? configuration.DefaultBaseUrl.NonsecurePort : 80, configuration.DefaultBaseUrl.SecurePortSpecified ? configuration.DefaultBaseUrl.SecurePort : 443, configuration.DefaultBaseUrl.Path ?? "") : site != null ? new BaseUrl( siteHostName.Name, siteHostName.NonsecurePortSpecified ? siteHostName.NonsecurePort : 80, siteHostName.SecureBinding != null && siteHostName.SecureBinding.PortSpecified ? siteHostName.SecureBinding.Port : 443, "") : new BaseUrl(virtualDirectory.Site, 80, 443, virtualDirectory.Name); DefaultCookieAttributes = configuration.DefaultCookieAttributes != null ? new DefaultCookieAttributes( configuration.DefaultCookieAttributes.Domain, configuration.DefaultCookieAttributes.Path, configuration.DefaultCookieAttributes.NamePrefix) : new DefaultCookieAttributes(null, null, null); }