Beispiel #1
0
        public void OnDeploymentTaskFinished_DoNothing_SoDoesNotThrows()
        {
            DeploymentInfo deploymentInfo = DeploymentInfoGenerator.GetTerminalAppDeploymentInfo();

            Assert.DoesNotThrow(
                () => _enforceTargetEnvironmentConstraintsModule.OnDeploymentTaskFinished(deploymentInfo, _deploymentTask, _deploymentContext));
        }
Beispiel #2
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);
        }
Beispiel #3
0
        public void Setup()
        {
            _deploymentTask = new DeployExtensionProjectDeploymentTask(
                _projectInfoRepository.Object,
                _environmentInfoRepository.Object,
                _artifactsRepository.Object,
                _directoryAdapter.Object,
                _fileAdapter.Object,
                _zipFileAdapter.Object,
                _failoverClusterManager.Object,
                _ntServiceManager.Object);

            DeploymentInfo di = DeploymentInfoGenerator.GetExtensionProjectDeploymentInfo();

            _deploymentTask.Initialize(di);

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

            _projectInfoRepository
            .Setup(x => x.FindByName(DeploymentDataGenerator.GetExtensionProjectInfo().ExtendedProjectName))
            .Returns(DeploymentDataGenerator.GetNtServiceProjectInfo);

            _projectInfoRepository
            .Setup(x => x.FindByName(di.ProjectName))
            .Returns(DeploymentDataGenerator.GetExtensionProjectInfo);
        }
Beispiel #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> >()));
        }
Beispiel #5
0
        public void StartDeployment_WhenDeploymentTaskIsNull_ThrowsArgumentNullException()
        {
            var projectInfoRepositoryFake     = new Mock <IProjectInfoRepository>(MockBehavior.Loose);
            var environmentInfoRepositoryFake = new Mock <IEnvironmentInfoRepository>(MockBehavior.Loose);

            var pipeline = new DeploymentPipeline(_applicationConfigurationMock.Object, _objectFactoryMock.Object);

            var deploymentInfo = DeploymentInfoGenerator.GetNtServiceDeploymentInfo();

            Assert.Throws <ArgumentNullException>(() => pipeline.StartDeployment(null, new DummyDeploymentTask(projectInfoRepositoryFake.Object, environmentInfoRepositoryFake.Object), new DeploymentContext("requester"), false));
            Assert.Throws <ArgumentNullException>(() => pipeline.StartDeployment(deploymentInfo, null, new DeploymentContext("requester"), false));
            Assert.Throws <ArgumentNullException>(() => pipeline.StartDeployment(deploymentInfo, new DummyDeploymentTask(projectInfoRepositoryFake.Object, environmentInfoRepositoryFake.Object), null, false));
        }
Beispiel #6
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);
        }
Beispiel #7
0
        public void OnDeploymentTaskStarting_DoNothing_SoDoesNotThrow()
        {
            var deploymentRequestRepository = new Mock <IDeploymentRequestRepository>();
            var auditingModule = new AuditingModule(deploymentRequestRepository.Object);

            var projectsInfoRepository    = new Mock <IProjectInfoRepository>();
            var environmentInfoRepository = new Mock <IEnvironmentInfoRepository>();
            var artifactsRepository       = new Mock <IArtifactsRepository>();
            var directoryAdapter          = new Mock <IDirectoryAdapter>();
            var fileAdapter       = new Mock <IFileAdapter>();
            var zipFileAdapter    = new Mock <IZipFileAdapter>();
            var deploymentTask    = new DeployTerminalAppDeploymentTask(projectsInfoRepository.Object, environmentInfoRepository.Object, artifactsRepository.Object, directoryAdapter.Object, fileAdapter.Object, zipFileAdapter.Object);
            var deploymentContext = new DeploymentContext("requester");

            DeploymentInfo deploymentInfo = DeploymentInfoGenerator.GetTerminalAppDeploymentInfo();

            Assert.DoesNotThrow(() => auditingModule.OnDeploymentTaskStarting(deploymentInfo, deploymentTask, deploymentContext));
        }
Beispiel #8
0
        public void OnDeploymentTaskStarting_WhenEnvironmentAndConfigurationIsProduction_DoesNotThrows()
        {
            DeploymentInfo deploymentInfo = DeploymentInfoGenerator.GetTerminalAppDeploymentInfo();

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

            _projectsInfoRepositoryFake
            .Setup(pir => pir.FindByName(deploymentInfo.ProjectName))
            .Returns(DeploymentDataGenerator.GetTerminalAppProjectInfo());

            _deploymentTask.Initialize(deploymentInfo);
            _deploymentTask.Prepare();

            Assert.DoesNotThrow(
                () => _enforceTargetEnvironmentConstraintsModule.OnDeploymentTaskStarting(deploymentInfo, _deploymentTask, _deploymentContext));
        }
Beispiel #9
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);
        }
Beispiel #10
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);
        }
Beispiel #11
0
        public void OnDeploymentTaskFinished_ExpectAddDeploymentRequest()
        {
            DeploymentInfo deploymentInfo = DeploymentInfoGenerator.GetTerminalAppDeploymentInfo();

            var deploymentRequestRepository = new Mock <IDeploymentRequestRepository>(MockBehavior.Strict);
            var auditingModule = new AuditingModule(deploymentRequestRepository.Object);

            var environmentInfoRepository = new Mock <IEnvironmentInfoRepository>();
            var artifactsRepository       = new Mock <IArtifactsRepository>();
            var projectsInfoRepository    = new Mock <IProjectInfoRepository>();
            var directoryAdapter          = new Mock <IDirectoryAdapter>();
            var fileAdapter    = new Mock <IFileAdapter>();
            var zipFileAdapter = new Mock <IZipFileAdapter>();

            var deploymentTask    = new DeployTerminalAppDeploymentTask(projectsInfoRepository.Object, environmentInfoRepository.Object, artifactsRepository.Object, directoryAdapter.Object, fileAdapter.Object, zipFileAdapter.Object);
            var deploymentContext = new DeploymentContext("requester");

            deploymentRequestRepository
            .Setup(
                drr =>
                drr.AddDeploymentRequest(
                    It.Is <DeploymentRequest>(
                        r => r.ProjectName == deploymentInfo.ProjectName &&
                        r.TargetEnvironmentName == deploymentInfo.TargetEnvironmentName)));

            environmentInfoRepository
            .Setup(x => x.FindByName(deploymentInfo.TargetEnvironmentName))
            .Returns(DeploymentDataGenerator.GetEnvironmentInfo());

            projectsInfoRepository
            .Setup(pir => pir.FindByName(deploymentInfo.ProjectName))
            .Returns(DeploymentDataGenerator.GetTerminalAppProjectInfo());

            deploymentTask.Initialize(deploymentInfo);
            deploymentTask.Prepare();

            Assert.DoesNotThrow(() => auditingModule.OnDeploymentTaskFinished(deploymentInfo, deploymentTask, deploymentContext));
        }
Beispiel #12
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());
        }