public void Test_CreateDeployemntTask_RunsProperly_WhenAllIsWell()
        {
            var objectFactory = new Mock<IObjectFactory>(MockBehavior.Strict);
              var prjInfoRepository = new Mock<IProjectInfoRepository>(MockBehavior.Strict);
              var envInfoRepository = new Mock<IEnvironmentInfoRepository>(MockBehavior.Strict);
              var artifactsRepository = new Mock<IArtifactsRepository>(MockBehavior.Strict);
              var taskScheduler = new Mock<ITaskScheduler>(MockBehavior.Strict);
              var imsDeploy = new Mock<IMsDeploy>(MockBehavior.Strict);
              var iisManager = new Mock<IIisManager>(MockBehavior.Strict);
              var fileAdapter = new Mock<IFileAdapter>(MockBehavior.Loose);
              var zipFileAdapter = new Mock<IZipFileAdapter>(MockBehavior.Loose);

              var projectInfo =
            new WebAppProjectInfo(
              _Name,
              _ArtifactsRepositoryName,
              _AllowedEnvironmentNames,
              _ArtifactsRepositoryDirName,
              _ArtifactsAreNotEnvironmentSpecific);

              objectFactory.Setup(o => o.CreateProjectInfoRepository()).Returns(prjInfoRepository.Object);
              objectFactory.Setup(o => o.CreateEnvironmentInfoRepository()).Returns(envInfoRepository.Object);
              objectFactory.Setup(o => o.CreateArtifactsRepository()).Returns(artifactsRepository.Object);
              objectFactory.Setup(o => o.CreateTaskScheduler()).Returns(taskScheduler.Object);
              objectFactory.Setup(o => o.CreateIMsDeploy()).Returns(imsDeploy.Object);
              objectFactory.Setup(o => o.CreateIIisManager()).Returns(iisManager.Object);
              objectFactory.Setup(o => o.CreateFileAdapter()).Returns(fileAdapter.Object);
              objectFactory.Setup(o => o.CreateZipFileAdapter()).Returns(zipFileAdapter.Object);

              projectInfo.CreateDeploymentTask(objectFactory.Object);
        }
Пример #2
0
        public void Test_CreateDeployemntTask_RunsProperly_WhenAllIsWell()
        {
            var objectFactory = new Mock<IObjectFactory>(MockBehavior.Strict);
              var envInfoRepository = new Mock<IEnvironmentInfoRepository>(MockBehavior.Strict);
              var artifactsRepository = new Mock<IArtifactsRepository>(MockBehavior.Strict);
              var taskScheduler = new Mock<ITaskScheduler>(MockBehavior.Strict);
              var imsDeploy = new Mock<IMsDeploy>(MockBehavior.Strict);
              var iisManager = new Mock<IIisManager>(MockBehavior.Strict);

              var projectInfo =
            new WebAppProjectInfo(
              Name,
              ArtifactsRepositoryName,
              ArtifactsRepositoryDirName,
              ArtifactsAreNotEnvironmentSpecific,
              IisSiteName,
              WebAppName,
              WebAppDirName,
              AppPoolInfo);

              objectFactory.Setup(o => o.CreateEnvironmentInfoRepository()).Returns(envInfoRepository.Object);
              objectFactory.Setup(o => o.CreateArtifactsRepository()).Returns(artifactsRepository.Object);
              objectFactory.Setup(o => o.CreateTaskScheduler()).Returns(taskScheduler.Object);
              objectFactory.Setup(o => o.CreateIMsDeploy()).Returns(imsDeploy.Object);
              objectFactory.Setup(o => o.CreateIIisManager()).Returns(iisManager.Object);

              projectInfo.CreateDeploymentTask(
            objectFactory.Object, "configName", "buildID", "targetEnvironmentName");
        }
        public DeployWebAppDeploymentTask(
      IMsDeploy msDeploy,
      IEnvironmentInfoRepository environmentInfoRepository,
      IArtifactsRepository artifactsRepository,
      IIisManager iisManager,
      WebAppProjectInfo projectInfo,
      string projectConfigurationName,
      string projectConfigurationBuildId,
      string targetEnvironmentName)
            : base(environmentInfoRepository, targetEnvironmentName)
        {
            if (msDeploy == null)
              {
            throw new ArgumentNullException("msDeploy");
              }

              if (artifactsRepository == null)
              {
            throw new ArgumentNullException("artifactsRepository");
              }

              if (iisManager == null)
              {
            throw new ArgumentNullException("iisManager");
              }

              if (projectInfo == null)
              {
            throw new ArgumentNullException("projectInfo");
              }

              if (string.IsNullOrEmpty(projectConfigurationName))
              {
            throw new ArgumentException("Argument can't be null nor empty.", "projectConfigurationName");
              }

              if (string.IsNullOrEmpty(projectConfigurationBuildId))
              {
            throw new ArgumentException("Argument can't be null nor empty.", "projectConfigurationBuildId");
              }

              _msDeploy = msDeploy;
              _artifactsRepository = artifactsRepository;
              _iisManager = iisManager;
              _projectInfo = projectInfo;
              _projectConfigurationName = projectConfigurationName;
              _projectConfigurationBuildId = projectConfigurationBuildId;
        }
Пример #4
0
        public WebAppProjectConfiguration GetWebAppProjectConfiguration(WebAppProjectInfo webAppProjectInfo)
        {
            Guard.NotNull(webAppProjectInfo, "webAppProjectInfo");

            string projectName   = webAppProjectInfo.Name;
            string appPoolId     = webAppProjectInfo.AppPoolId;
            string webSiteName   = webAppProjectInfo.WebSiteName;
            string webAppDirName = webAppProjectInfo.WebAppDirName;
            string webAppName    = webAppProjectInfo.WebAppName;

            WebAppProjectConfigurationOverride webAppProjectConfigurationOverride =
                FindWebAppProjectConfigurationOverride(projectName);

            if (webAppProjectConfigurationOverride != null)
            {
                if (webAppProjectConfigurationOverride.AppPoolId != null)
                {
                    appPoolId = webAppProjectConfigurationOverride.AppPoolId;
                }

                if (webAppProjectConfigurationOverride.WebSiteName != null)
                {
                    webSiteName = webAppProjectConfigurationOverride.WebSiteName;
                }

                if (webAppProjectConfigurationOverride.WebAppDirName != null)
                {
                    webAppDirName = webAppProjectConfigurationOverride.WebAppDirName;
                }

                if (webAppProjectConfigurationOverride.WebAppName != null)
                {
                    webAppName = webAppProjectConfigurationOverride.WebAppName;
                }
            }

            return
                (new WebAppProjectConfiguration(
                     projectName,
                     appPoolId,
                     webSiteName,
                     webAppDirName,
                     webAppName));
        }
        public void Prepare_should_throw_exception_when_web_appplication_name_is_empty_and_web_site_has_more_than_one_application()
        {
            // arrange
              const string webSiteName = "webSiteName";

              _projectInfo = GetWebProjectInfoWithEmptyAppName(webSiteName);

              _projectInfoRepositoryFake.Setup(x => x.FindByName(It.IsAny<string>()))
            .Returns(_projectInfo);

              _projectInfoRepositoryFake.Setup(x => x.GetAll())
            .Returns(new List<WebAppProjectInfo>
            {
              GetWebProjectInfoWithEmptyAppName(webSiteName),
              GetWebProjectInfoWithEmptyAppName(webSiteName)
            });

              // act assert
              Assert.Throws<DeploymentTaskException>(() => _deployWebAppDeploymentTask.Prepare());
        }
Пример #6
0
        public List <string> GetWebAppProjectTargetUrls(string projectName, string environmentName)
        {
            if (string.IsNullOrEmpty(projectName))
            {
                throw new ArgumentException("Argument can't be null nor empty.", "projectName");
            }

            if (string.IsNullOrEmpty(environmentName))
            {
                throw new ArgumentException("Argument can't be null nor empty.", "environmentName");
            }

            WebAppProjectInfo webAppProjectInfo =
                _projectInfoRepository.FindByName(projectName) as WebAppProjectInfo;

            if (webAppProjectInfo == null)
            {
                throw new FaultException <ProjectNotFoundFault>(new ProjectNotFoundFault {
                    ProjectName = projectName
                });
            }

            EnvironmentInfo environmentInfo =
                _environmentInfoRepository.FindByName(environmentName);

            if (environmentInfo == null)
            {
                throw new FaultException <EnvironmentNotFoundFault>(new EnvironmentNotFoundFault {
                    EnvironmentName = environmentName
                });
            }

            List <string> targetUrls =
                webAppProjectInfo.GetTargetUrls(environmentInfo)
                .ToList();

            return(targetUrls);
        }
Пример #7
0
        public void Test_GetTargetFolders_RunsProperly_WhenAllIsWell()
        {
            string machine = Environment.MachineName;

              var envInfo =
            new EnvironmentInfo(
              "name",
              "templates",
              machine,
              "failover",
              new[] { "webmachine" },
              "terminalmachine",
              "databasemachine",
              "C:\\basedir",
              "C:\\basedir",
              "c:\\scheduler",
              "terminal",
              false,
              _EnvironmentUsers,
              _ProjectToFailoverClusterGroupMappings);

              var projectInfo =
            new WebAppProjectInfo(
              Name,
              ArtifactsRepositoryName,
              ArtifactsRepositoryDirName,
              false,
              IisSiteName,
              WebAppName,
              WebAppDirName,
              AppPoolInfo);

              Assert.IsNotNullOrEmpty(projectInfo.GetTargetFolders(envInfo).FirstOrDefault());
        }
Пример #8
0
        public void Test_CreateDeployemntTask_Thows_When_ObjectFactory_null()
        {
            var projectInfo =
            new WebAppProjectInfo(
              Name,
              ArtifactsRepositoryName,
              ArtifactsRepositoryDirName,
              ArtifactsAreNotEnvironmentSpecific,
              IisSiteName,
              WebAppName,
              WebAppDirName,
              AppPoolInfo);

              Assert.Throws<ArgumentNullException>(
            () => projectInfo.CreateDeploymentTask(
              null, "configName", "buildID", "targetEnvironmentName"));
        }
Пример #9
0
        public void Test_GetTargetUrls_Throws_EnvInfo_null()
        {
            var projectInfo =
            new WebAppProjectInfo(
              Name,
              ArtifactsRepositoryName,
              ArtifactsRepositoryDirName,
              ArtifactsAreNotEnvironmentSpecific,
              IisSiteName,
              WebAppName,
              WebAppDirName,
              AppPoolInfo);

              Assert.Throws<ArgumentNullException>(() => projectInfo.GetTargetUrls(null));
        }
Пример #10
0
        public void Test_GetTargetUrls_RunsProperly_WhenAllIsWell()
        {
            string machine = Environment.MachineName;
              const string baseDirPath = "c:\\basedir";

              var envInfo =
            new EnvironmentInfo(
              "name",
              "templates",
              machine,
              "failover",
              new[] { "webmachine" },
              "terminalmachine",
              "databasemachine",
              baseDirPath,
              "webbasedir",
              "c:\\scheduler",
              "terminal",
              false,
              _EnvironmentUsers,
              _ProjectToFailoverClusterGroupMappings);

              var projectInfo =
            new WebAppProjectInfo(
              Name,
              ArtifactsRepositoryName,
              ArtifactsRepositoryDirName,
              ArtifactsAreNotEnvironmentSpecific,
              IisSiteName,
              WebAppName,
              WebAppDirName,
              AppPoolInfo);

              List<string> targetUrls =
            projectInfo.GetTargetUrls(envInfo)
              .ToList();

              Assert.IsNotNull(targetUrls);
              Assert.AreEqual(1, targetUrls.Count);
              Assert.AreEqual("http://webmachine/" + WebAppName, targetUrls[0]);
        }
Пример #11
0
        public WebAppProjectConfiguration GetWebAppProjectConfiguration(WebAppProjectInfo webAppProjectInfo)
        {
            Guard.NotNull(webAppProjectInfo, "webAppProjectInfo");

              string projectName = webAppProjectInfo.Name;
              string appPoolId = webAppProjectInfo.AppPoolId;
              string webSiteName = webAppProjectInfo.WebSiteName;
              string webAppDirName = webAppProjectInfo.WebAppDirName;
              string webAppName = webAppProjectInfo.WebAppName;

              WebAppProjectConfigurationOverride webAppProjectConfigurationOverride =
            FindWebAppProjectConfigurationOverride(projectName);

              if (webAppProjectConfigurationOverride != null)
              {
            if (webAppProjectConfigurationOverride.AppPoolId != null)
            {
              appPoolId = webAppProjectConfigurationOverride.AppPoolId;
            }

            if (webAppProjectConfigurationOverride.WebSiteName != null)
            {
              webSiteName = webAppProjectConfigurationOverride.WebSiteName;
            }

            if (webAppProjectConfigurationOverride.WebAppDirName != null)
            {
              webAppDirName = webAppProjectConfigurationOverride.WebAppDirName;
            }

            if (webAppProjectConfigurationOverride.WebAppName != null)
            {
              webAppName = webAppProjectConfigurationOverride.WebAppName;
            }
              }

              return
            new WebAppProjectConfiguration(
              projectName,
              appPoolId,
              webSiteName,
              webAppDirName,
              webAppName);
        }
 public DeployWebServiceDeploymentTask(IMsDeploy msDeploy,IEnvironmentInfoRepository environmentInfoRepository, IArtifactsRepository artifactsRepository, IIisManager iisManager, WebAppProjectInfo projectInfo, string projectConfigurationName, string projectConfigurationBuildId, string targetEnvironmentName)
     : base(msDeploy, environmentInfoRepository, artifactsRepository, iisManager, projectInfo, projectConfigurationName, projectConfigurationBuildId, targetEnvironmentName)
 {
 }
        public virtual void SetUp()
        {
            _msDeploy = new Mock<IMsDeploy>();
              _artifactsRepository = new Mock<IArtifactsRepository>();
              _projectInfoRepositoryFake = new Mock<IProjectInfoRepository>(MockBehavior.Loose);
              _environmentInfoRepositoryFake = new Mock<IEnvironmentInfoRepository>();
              _iisManager = new Mock<IIisManager>();
              _fileAdapterFake = new Mock<IFileAdapter>(MockBehavior.Loose);
              _zipFileAdapterFake = new Mock<IZipFileAdapter>(MockBehavior.Loose);

              _projectInfo = ProjectInfoGenerator.GetWebAppProjectInfo();
              _environmentInfo = DeploymentDataGenerator.GetEnvironmentInfo();

              _deployWebAppDeploymentTask =
            new DeployWebAppDeploymentTask(
              _projectInfoRepositoryFake.Object,
              _environmentInfoRepositoryFake.Object,
              _msDeploy.Object,
              _artifactsRepository.Object,
              _iisManager.Object,
              _fileAdapterFake.Object,
              _zipFileAdapterFake.Object);

              _deployWebAppDeploymentTask.Initialize(DeploymentInfoGenerator.GetWebAppDeploymentInfo());

              _projectInfoRepositoryFake.Setup(x => x.FindByName(It.IsAny<string>()))
            .Returns(_projectInfo);

              _environmentInfoRepositoryFake.Setup(x => x.FindByName(It.IsAny<string>()))
            .Returns(_environmentInfo);
        }
Пример #14
0
        public void Test_GetTargetFolders_RunsProperly_WhenAllIsWell()
        {
            string machine = Environment.MachineName;

              var envInfo =
            new EnvironmentInfo(
              "name",
              true,
              "templates",
              machine,
              "failover",
              new[] { "webmachine" },
              "terminalmachine",
              new[] { "schedulerServerTasksMachineName1", "schedulerServerTasksMachineName2", },
              new[] { "schedulerServerBinariesMachineName1", "schedulerServerBinariesMachineName2", },
              "C:\\basedir",
              "C:\\basedir",
              "c:\\scheduler",
              "terminal",
              false,
              TestData.EnvironmentUsers,
              TestData.AppPoolInfos,
              TestData.DatabaseServers,
              TestData.ProjectToFailoverClusterGroupMappings,
              TestData.WebAppProjectConfigurationOverrides,
              TestData.DbProjectConfigurationOverrides,
              "terminalAppsShortcutFolder",
              "artifactsDeploymentDirPath",
              "domain-name",
              TestData.CustomEnvMachines);

              var projectInfo =
            new WebAppProjectInfo(
              _Name,
              _ArtifactsRepositoryName,
              _AllowedEnvironmentNames,
              _ArtifactsRepositoryDirName,
              false,
              _AppPoolId,
              _WebSiteName,
              _WebAppDirName,
              _WebAppName);

              Assert.IsNotNullOrEmpty(projectInfo.GetTargetFolders(_objectFactoryFake.Object, envInfo).FirstOrDefault());
        }
Пример #15
0
        public void Test_GetTargetUrls_RunsProperly_WhenAllIsWell()
        {
            string machine = Environment.MachineName;
              const string baseDirPath = "c:\\basedir";

              var envInfo =
            new EnvironmentInfo(
              "name",
              true,
              "templates",
              machine,
              "failover",
              new[] { "webmachine" },
              "terminalmachine",
              new[] { "schedulerServerTasksMachineName1", "schedulerServerTasksMachineName2", },
              new[] { "schedulerServerBinariesMachineName1", "schedulerServerBinariesMachineName2", },
              baseDirPath,
              "webbasedir",
              "c:\\scheduler",
              "terminal",
              false,
              TestData.EnvironmentUsers,
              TestData.AppPoolInfos,
              TestData.DatabaseServers,
              TestData.ProjectToFailoverClusterGroupMappings,
              TestData.WebAppProjectConfigurationOverrides,
              TestData.DbProjectConfigurationOverrides,
              "terminalAppsShortcutFolder",
              "artifactsDeploymentDirPath",
              "domain-name",
              TestData.CustomEnvMachines);

              var projectInfo =
            new WebAppProjectInfo(
              _Name,
              _ArtifactsRepositoryName,
              _AllowedEnvironmentNames,
              _ArtifactsRepositoryDirName,
              _ArtifactsAreNotEnvironmentSpecific,
              _AppPoolId,
              _WebSiteName,
              _WebAppDirName,
              _WebAppName);

              List<string> targetUrls =
            projectInfo.GetTargetUrls(envInfo)
              .ToList();

              Assert.IsNotNull(targetUrls);
              Assert.AreEqual(1, targetUrls.Count);
              Assert.AreEqual("http://webmachine/" + "webapp", targetUrls[0]);
        }