Esempio n. 1
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 ntServiceManager    = new Mock <INtServiceManager>(MockBehavior.Strict);
            var projInfoRepository  = new Mock <IProjectInfoRepository>(MockBehavior.Strict);
            var directoryAdapter    = new Mock <IDirectoryAdapter>(MockBehavior.Loose);
            var fileAdapter         = new Mock <IFileAdapter>(MockBehavior.Loose);
            var zipFileAdapter      = new Mock <IZipFileAdapter>(MockBehavior.Loose);

            var projectInfo = new TerminalAppProjectInfo(
                _Name,
                _ArtifactsRepositoryName,
                _AllowedEnvironmentNames,
                _ArtifactsRepositoryDirName,
                _ArtifactsAreNotEnvirionmentSpecific,
                _TerminalAppName,
                _TerminalAppDirName,
                _TerminalAppExeName);

            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.CreateNtServiceManager()).Returns(ntServiceManager.Object);
            objectFactory.Setup(o => o.CreateProjectInfoRepository()).Returns(projInfoRepository.Object);
            objectFactory.Setup(o => o.CreateDirectoryAdapter()).Returns(directoryAdapter.Object);
            objectFactory.Setup(o => o.CreateFileAdapter()).Returns(fileAdapter.Object);
            objectFactory.Setup(o => o.CreateZipFileAdapter()).Returns(zipFileAdapter.Object);

            projectInfo.CreateDeploymentTask(objectFactory.Object);
        }
Esempio n. 2
0
        public void Test_GetTargetFolders_RunsProperly_WhenAllIsWell()
        {
            var envInfo = DeploymentDataGenerator.GetEnvironmentInfo();

            var projectInfo =
                new TerminalAppProjectInfo(
                    _Name,
                    _ArtifactsRepositoryName,
                    _AllowedEnvironmentNames,
                    _ArtifactsRepositoryDirName,
                    _ArtifactsAreNotEnvirionmentSpecific,
                    _TerminalAppName,
                    _TerminalAppDirName,
                    _TerminalAppExeName);

            string terminalServerNetworkPath =
                envInfo.GetTerminalServerNetworkPath(
                    string.Format("{0}{1}\\1.0.0.0", envInfo.TerminalAppsBaseDirPath, projectInfo.TerminalAppDirName));

            _directoryAdapterFake.Setup(
                da => da.GetDirectories(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <SearchOption>()))
            .Returns(new[] { terminalServerNetworkPath });

            // act
            List <string> targetFolders =
                projectInfo.GetTargetFolders(_objectFactoryFake.Object, envInfo)
                .ToList();

            Assert.IsNotNull(targetFolders);
            Assert.AreEqual(1, targetFolders.Count);
            Assert.AreEqual(terminalServerNetworkPath, targetFolders[0]);
        }
        protected override void DoPrepare()
        {
            EnvironmentInfo        environmentInfo = GetEnvironmentInfo();
            TerminalAppProjectInfo projectInfo     = GetProjectInfo <TerminalAppProjectInfo>();

            // create a step for downloading the artifacts
            var downloadArtifactsDeploymentStep =
                new DownloadArtifactsDeploymentStep(
                    projectInfo,
                    DeploymentInfo,
                    GetTempDirPath(),
                    _artifactsRepository);

            AddSubTask(downloadArtifactsDeploymentStep);

            // create a step for extracting the artifacts
            var extractArtifactsDeploymentStep =
                new ExtractArtifactsDeploymentStep(
                    projectInfo,
                    environmentInfo,
                    DeploymentInfo,
                    downloadArtifactsDeploymentStep.ArtifactsFilePath,
                    GetTempDirPath(),
                    _fileAdapter,
                    _directoryAdapter,
                    _zipFileAdapter);

            AddSubTask(extractArtifactsDeploymentStep);

            if (projectInfo.ArtifactsAreEnvironmentSpecific)
            {
                var binariesConfiguratorStep =
                    new ConfigureBinariesStep(
                        environmentInfo.ConfigurationTemplateName,
                        GetTempDirPath());

                AddSubTask(binariesConfiguratorStep);
            }

            var extractVersionDeploymentStep =
                new ExtractVersionDeploymentStep(
                    new Lazy <string>(() => extractArtifactsDeploymentStep.BinariesDirPath),
                    projectInfo.TerminalAppExeName
                    );

            AddSubTask(extractVersionDeploymentStep);

            var prepareVersionedFolderDeploymentStep =
                new PrepareVersionedFolderDeploymentStep(
                    DeploymentInfo.ProjectName,
                    environmentInfo.GetTerminalServerNetworkPath(environmentInfo.TerminalAppsBaseDirPath),
                    projectInfo.TerminalAppDirName,
                    new Lazy <string>(() => extractVersionDeploymentStep.Version));

            AddSubTask(prepareVersionedFolderDeploymentStep);

            AddSubTask(
                new CleanDirectoryDeploymentStep(
                    _directoryAdapter,
                    _fileAdapter,
                    new Lazy <string>(() => prepareVersionedFolderDeploymentStep.VersionDeploymentDirPath),
                    excludedDirs: new string[] { }));

            AddSubTask(
                new CopyFilesDeploymentStep(
                    _directoryAdapter,
                    new Lazy <string>(() => extractArtifactsDeploymentStep.BinariesDirPath),
                    new Lazy <string>(() => prepareVersionedFolderDeploymentStep.VersionDeploymentDirPath)));

            AddSubTask(
                new UpdateApplicationShortcutDeploymentStep(
                    environmentInfo.GetTerminalServerNetworkPath(environmentInfo.TerminalAppsShortcutFolder),
                    new Lazy <string>(() => prepareVersionedFolderDeploymentStep.VersionDeploymentDirPath),
                    projectInfo.TerminalAppExeName,
                    projectInfo.Name));
        }