Example #1
0
        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);
            _applicationConfigurationFake  = new Mock <IApplicationConfiguration>();
            _directoryAdapterFake          = new Mock <IDirectoryAdapter>();

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

            _deployWebAppDeploymentTask =
                new DeployWebAppDeploymentTask(
                    _projectInfoRepositoryFake.Object,
                    _environmentInfoRepositoryFake.Object,
                    _msDeploy.Object,
                    _artifactsRepository.Object,
                    _iisManager.Object,
                    _fileAdapterFake.Object,
                    _zipFileAdapterFake.Object,
                    _applicationConfigurationFake.Object,
                    _directoryAdapterFake.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);
        }
Example #2
0
        public void BinariesDirPath_returns_path_with_config_template_name_when_artifacts_are_env_specific()
        {
            // arrange
            var environmentInfo = DeploymentDataGenerator.GetEnvironmentInfo();

            NtServiceProjectInfo projectInfo =
                ProjectInfoGenerator.GetNtServiceProjectInfo(areEnvironmentSpecific: true);

            _directoryAdapterFake.Setup(x => x.Exists(It.IsAny <string>()))
            .Returns(true);

            _deploymentStep =
                new ExtractArtifactsDeploymentStep(
                    projectInfo,
                    environmentInfo,
                    _deploymentInfo,
                    _ArtifactsFilePath,
                    _TargetArtifactsDirPath,
                    _fileAdapterFake.Object,
                    _directoryAdapterFake.Object,
                    _zipFileAdapterFake.Object);

            _deploymentStep.Prepare();

            // act, assert
            Assert.IsTrue(_deploymentStep.BinariesDirPath.Contains(environmentInfo.ConfigurationTemplateName));
        }
Example #3
0
        public void BinariesDirPath_fails_when_extracted_binaries_dir_doesnt_exist()
        {
            // arrange
            NtServiceProjectInfo projectInfo =
                ProjectInfoGenerator.GetNtServiceProjectInfo(areEnvironmentSpecific: false);

            _directoryAdapterFake.Setup(x => x.Exists(It.IsAny <string>()))
            .Returns(false);

            _deploymentStep =
                new ExtractArtifactsDeploymentStep(
                    projectInfo,
                    _environmentInfo,
                    _deploymentInfo,
                    _ArtifactsFilePath,
                    _TargetArtifactsDirPath,
                    _fileAdapterFake.Object,
                    _directoryAdapterFake.Object,
                    _zipFileAdapterFake.Object);

            _deploymentStep.Prepare();

            // act assert
            Assert.Throws <DeploymentTaskException>(
                () => { string binPath = _deploymentStep.BinariesDirPath; });
        }
Example #4
0
        public void SetUp()
        {
            _projectInfoRepositoryFake     = new Mock <IProjectInfoRepository>(MockBehavior.Loose);
            _environmentInfoRepositoryFake = new Mock <IEnvironmentInfoRepository>(MockBehavior.Loose);
            _artifactsRepositoryFake       = new Mock <IArtifactsRepository>(MockBehavior.Loose);
            _dbScriptRunnerFactoryFake     = new Mock <IDbScriptRunnerFactory>(MockBehavior.Loose);
            _dbVersionProviderFake         = new Mock <IDbVersionProvider>(MockBehavior.Loose);
            _fileAdapterFake             = new Mock <IFileAdapter>();
            _zipFileAdapterFake          = new Mock <IZipFileAdapter>();
            _scriptsToRunWebSelectorFake = new Mock <IScriptsToRunSelector>();
            _databasePublisherFake       = new Mock <IMsSqlDatabasePublisher>();
            _dbManagerFake          = new Mock <IDbManagerFactory>();
            _userNameNormalizerMock = new Mock <IUserNameNormalizer>();
            _directoryAdapterFake   = new Mock <IDirectoryAdapter>();

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

            _environmentInfoRepositoryFake
            .Setup(x => x.FindByName(It.IsAny <string>()))
            .Returns(DeploymentDataGenerator.GetEnvironmentInfo);

            _dbScriptRunnerFactoryFake
            .Setup(x => x.CreateDbScriptRunner(It.IsAny <bool>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(new Mock <IDbScriptRunner>(MockBehavior.Loose).Object);

            _deploymentTask =
                new DeployDbProjectDeploymentTask(
                    _projectInfoRepositoryFake.Object,
                    _environmentInfoRepositoryFake.Object,
                    _artifactsRepositoryFake.Object,
                    _dbScriptRunnerFactoryFake.Object,
                    _dbVersionProviderFake.Object,
                    _fileAdapterFake.Object,
                    _zipFileAdapterFake.Object,
                    _scriptsToRunWebSelectorFake.Object,
                    _databasePublisherFake.Object,
                    _dbManagerFake.Object,
                    _userNameNormalizerMock.Object,
                    _directoryAdapterFake.Object);

            _deploymentTask.Initialize(DeploymentInfoGenerator.GetDbDeploymentInfo());

            _dbVersionProviderFake.Setup(x => x.CheckIfDatabaseExists(It.IsAny <string>(), It.IsAny <string>())).Returns(true);

            _databasePublisherFake.Setup(
                x =>
                x.PublishFromDacpac(
                    It.IsAny <string>(),
                    It.IsAny <string>(),
                    It.IsAny <string>(),
                    It.IsAny <Dictionary <string, string> >()));
        }
Example #5
0
        private OrderedDictionary GetConstructorDefaultParams()
        {
            OrderedDictionary defaultParams =
                new OrderedDictionary
            {
                { "projectInfo", ProjectInfoGenerator.GetTerminalAppProjectInfo() },
                { "environmentInfo", DeploymentDataGenerator.GetEnvironmentInfo() },
                { "deploymentInfo", DeploymentInfoGenerator.GetTerminalAppDeploymentInfo() },
                { "artifactsFilePath", _ArtifactsFilePath },
                { "targetArtifactsDirPath", _TargetArtifactsDirPath },
                { "fileAdapter", _fileAdapterFake.Object },
                { "directoryAdapter", _directoryAdapterFake.Object },
                { "zipFileAdapter", _zipFileAdapterFake.Object },
            };

            return(defaultParams);
        }
Example #6
0
        public void SetUp()
        {
            _dbVersionProviderFake   = new Mock <IDbVersionProvider>(MockBehavior.Loose);
            _scriptsToRunWebSelector = new Mock <IScriptsToRunSelector>(MockBehavior.Loose);

            DbProjectInfo dbProjectInfo = ProjectInfoGenerator.GetDbProjectInfo();

            DeploymentInfo di = DeploymentInfoGenerator.GetDbDeploymentInfo();

            _deploymentStep = new GatherDbScriptsToRunDeploymentStep(
                dbProjectInfo.DbName,
                new Lazy <string>(() => _ScriptPath),
                _SqlServerName,
                _Environment,
                di,
                _dbVersionProviderFake.Object,
                _scriptsToRunWebSelector.Object);
        }
Example #7
0
        public void SetUp()
        {
            _environmentInfo      = DeploymentDataGenerator.GetEnvironmentInfo();
            _deploymentInfo       = DeploymentInfoGenerator.GetDbDeploymentInfo();
            _projectInfo          = ProjectInfoGenerator.GetTerminalAppProjectInfo();
            _fileAdapterFake      = new Mock <IFileAdapter>(MockBehavior.Loose);
            _directoryAdapterFake = new Mock <IDirectoryAdapter>(MockBehavior.Loose);
            _zipFileAdapterFake   = new Mock <IZipFileAdapter>(MockBehavior.Loose);

            _deploymentStep =
                new ExtractArtifactsDeploymentStep(
                    _projectInfo,
                    _environmentInfo,
                    _deploymentInfo,
                    _ArtifactsFilePath,
                    _TargetArtifactsDirPath,
                    _fileAdapterFake.Object,
                    _directoryAdapterFake.Object,
                    _zipFileAdapterFake.Object);
        }
Example #8
0
        public void SetUp()
        {
            _projectInfoRepositoryFake     = new Mock <IProjectInfoRepository>();
            _environmentInfoRepositoryFake = new Mock <IEnvironmentInfoRepository>();
            _artifactsRepositoryFake       = new Mock <IArtifactsRepository>();
            _taskSchedulerFake             = new Mock <ITaskScheduler>();
            _passwordCollectorFake         = new Mock <IPasswordCollector>();
            _directoryAdapterFake          = new Mock <IDirectoryAdapter>();
            _fileAdapterFake    = new Mock <IFileAdapter>();
            _zipFileAdapterFake = new Mock <IZipFileAdapter>();

            _projectInfo = ProjectInfoGenerator.GetSchedulerAppProjectInfo();

            SchedulerAppTask schedulerAppTask1 = _projectInfo.SchedulerAppTasks.First();
            SchedulerAppTask schedulerAppTask2 = _projectInfo.SchedulerAppTasks.Second();

            _environmentInfo =
                DeploymentDataGenerator.GetEnvironmentInfo(
                    new[]
            {
                new EnvironmentUser(schedulerAppTask1.UserId, "user_name_1"),
                new EnvironmentUser(schedulerAppTask2.UserId, "user_name_2"),
            });

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

            string exeAbsolutePath1 =
                Path.Combine(
                    _environmentInfo.SchedulerAppsBaseDirPath,
                    _projectInfo.SchedulerAppDirName,
                    schedulerAppTask1.ExecutableName);

            var scheduledTaskRepetition1 =
                new ScheduledTaskRepetition(
                    schedulerAppTask1.Repetition.Interval,
                    schedulerAppTask1.Repetition.Duration,
                    schedulerAppTask1.Repetition.StopAtDurationEnd);

            ScheduledTaskDetails taskDetails1 =
                GetTaskDetails(schedulerAppTask1, exeAbsolutePath1, true, false, scheduledTaskRepetition1);

            ScheduledTaskDetails taskDetailsDisabled1 =
                GetTaskDetails(schedulerAppTask1, exeAbsolutePath1, false, false, scheduledTaskRepetition1);

            int timesCalled11 = 0;

            _taskSchedulerFake
            .Setup(x => x.GetScheduledTaskDetails(_environmentInfo.SchedulerServerTasksMachineNames.First(), schedulerAppTask1.Name))
            .Returns(() =>
            {
                timesCalled11++;

                if (timesCalled11 == 1)
                {
                    return(taskDetails1);
                }

                if (timesCalled11 == 2)
                {
                    return(taskDetailsDisabled1);
                }

                throw new Exception("Unexpected number of calls!");
            });

            int timesCalled21 = 0;

            _taskSchedulerFake
            .Setup(x => x.GetScheduledTaskDetails(_environmentInfo.SchedulerServerTasksMachineNames.Second(), schedulerAppTask1.Name))
            .Returns(() =>
            {
                timesCalled21++;

                if (timesCalled21 == 1)
                {
                    return(taskDetails1);
                }

                if (timesCalled21 == 2)
                {
                    return(taskDetailsDisabled1);
                }

                throw new Exception("Unexpected number of calls!");
            });

            string exeAbsolutePath2 =
                Path.Combine(
                    _environmentInfo.SchedulerAppsBaseDirPath,
                    _projectInfo.SchedulerAppDirName,
                    schedulerAppTask2.ExecutableName);

            var scheduledTaskRepetition2 =
                new ScheduledTaskRepetition(
                    schedulerAppTask2.Repetition.Interval,
                    schedulerAppTask2.Repetition.Duration,
                    schedulerAppTask2.Repetition.StopAtDurationEnd);

            ScheduledTaskDetails taskDetails2 =
                GetTaskDetails(schedulerAppTask2, exeAbsolutePath2, true, false, scheduledTaskRepetition2);

            ScheduledTaskDetails taskDetailsDisabled2 =
                GetTaskDetails(schedulerAppTask2, exeAbsolutePath2, false, false, scheduledTaskRepetition2);

            int timesCalled12 = 0;

            _taskSchedulerFake
            .Setup(x => x.GetScheduledTaskDetails(_environmentInfo.SchedulerServerTasksMachineNames.First(), schedulerAppTask2.Name))
            .Returns(() =>
            {
                timesCalled12++;

                if (timesCalled12 == 1)
                {
                    return(taskDetails2);
                }

                if (timesCalled12 == 2)
                {
                    return(taskDetailsDisabled2);
                }

                throw new Exception("Unexpected number of calls!");
            });

            int timesCalled22 = 0;

            _taskSchedulerFake
            .Setup(x => x.GetScheduledTaskDetails(_environmentInfo.SchedulerServerTasksMachineNames.Second(), schedulerAppTask2.Name))
            .Returns(() =>
            {
                timesCalled22++;

                if (timesCalled22 == 1)
                {
                    return(taskDetails2);
                }

                if (timesCalled22 == 2)
                {
                    return(taskDetailsDisabled2);
                }

                throw new Exception("Unexpected number of calls!");
            });

            _environmentInfoRepositoryFake
            .Setup(x => x.FindByName(It.IsAny <string>()))
            .Returns(_environmentInfo);

            _directoryAdapterFake
            .Setup(x => x.Exists(It.IsAny <string>()))
            .Returns(true);

            _deployTask =
                new DeploySchedulerAppDeploymentTask(
                    _projectInfoRepositoryFake.Object,
                    _environmentInfoRepositoryFake.Object,
                    _artifactsRepositoryFake.Object,
                    _taskSchedulerFake.Object,
                    _passwordCollectorFake.Object,
                    _directoryAdapterFake.Object,
                    _fileAdapterFake.Object,
                    _zipFileAdapterFake.Object);

            _deployTask.Initialize(DeploymentInfoGenerator.GetSchedulerAppDeploymentInfo());
        }