Esempio n. 1
0
        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);
        }