Beispiel #1
0
        public async Task RecipeController_GetRecipe_EmptyId(string recipeId)
        {
            var directoryManager              = new DirectoryManager();
            var fileManager                   = new FileManager();
            var deploymentManifestEngine      = new DeploymentManifestEngine(directoryManager, fileManager);
            var consoleInteractiveServiceImpl = new ConsoleInteractiveServiceImpl();
            var consoleOrchestratorLogger     = new ConsoleOrchestratorLogger(consoleInteractiveServiceImpl);
            var commandLineWrapper            = new CommandLineWrapper(consoleOrchestratorLogger);
            var customRecipeLocator           = new CustomRecipeLocator(deploymentManifestEngine, consoleOrchestratorLogger, commandLineWrapper, directoryManager);
            var projectDefinitionParser       = new ProjectDefinitionParser(fileManager, directoryManager);

            var recipeController = new RecipeController(customRecipeLocator, projectDefinitionParser);
            var response         = await recipeController.GetRecipe(recipeId);

            Assert.IsType <BadRequestObjectResult>(response);
        }
Beispiel #2
0
        private async Task <RecommendationEngine> BuildRecommendationEngine(string testProjectName)
        {
            var fullPath = SystemIOUtilities.ResolvePath(testProjectName);

            var parser         = new ProjectDefinitionParser(new FileManager(), new DirectoryManager());
            var awsCredentials = new Mock <AWSCredentials>();
            var session        = new OrchestratorSession(
                await parser.Parse(fullPath),
                awsCredentials.Object,
                "us-west-2",
                "123456789012")
            {
                AWSProfileName = "default"
            };

            return(new RecommendationEngine(new[] { RecipeLocator.FindRecipeDefinitionsPath() }, session));
        }
Beispiel #3
0
        public async Task RecipeController_GetRecipe_WithProjectPath()
        {
            var directoryManager        = new DirectoryManager();
            var fileManager             = new FileManager();
            var projectDefinitionParser = new ProjectDefinitionParser(fileManager, directoryManager);

            var mockCustomRecipeLocator = new Mock <ICustomRecipeLocator>();

            var sourceProjectDirectory = SystemIOUtilities.ResolvePath("WebAppWithDockerFile");

            var customLocatorCalls = 0;

            mockCustomRecipeLocator
            .Setup(x => x.LocateCustomRecipePaths(It.IsAny <string>(), It.IsAny <string>()))
            .Callback <string, string>((csProjectPath, solutionPath) =>
            {
                customLocatorCalls++;
                Assert.Equal(new DirectoryInfo(sourceProjectDirectory).FullName, Directory.GetParent(csProjectPath).FullName);
            })
            .Returns(Task.FromResult(new HashSet <string>()));

            var projectDefinition = await projectDefinitionParser.Parse(sourceProjectDirectory);

            var recipeDefinitions = await RecipeHandler.GetRecipeDefinitions(mockCustomRecipeLocator.Object, projectDefinition);

            var recipe = recipeDefinitions.First();

            Assert.NotEqual(0, customLocatorCalls);

            customLocatorCalls = 0;
            var recipeController = new RecipeController(mockCustomRecipeLocator.Object, projectDefinitionParser);
            var response         = await recipeController.GetRecipe(recipe.Id, sourceProjectDirectory);

            Assert.NotEqual(0, customLocatorCalls);

            var result       = Assert.IsType <OkObjectResult>(response);
            var resultRecipe = Assert.IsType <RecipeSummary>(result.Value);

            Assert.Equal(recipe.Id, resultRecipe.Id);
        }
Beispiel #4
0
        public SetOptionSettingTests()
        {
            var projectPath = SystemIOUtilities.ResolvePath("WebAppNoDockerFile");

            var parser         = new ProjectDefinitionParser(new FileManager(), new DirectoryManager());
            var awsCredentials = new Mock <AWSCredentials>();
            var session        = new OrchestratorSession(
                parser.Parse(projectPath).Result,
                awsCredentials.Object,
                "us-west-2",
                "123456789012")
            {
                AWSProfileName = "default"
            };

            var engine          = new RecommendationEngine(new[] { RecipeLocator.FindRecipeDefinitionsPath() }, session);
            var recommendations = engine.ComputeRecommendations().GetAwaiter().GetResult();

            _recommendation = recommendations.First(r => r.Recipe.Id == Constants.ASPNET_CORE_BEANSTALK_RECIPE_ID);

            _optionSetting = _recommendation.Recipe.OptionSettings.First(x => x.Id.Equals("EnvironmentType"));
        }
Beispiel #5
0
        public async Task RecipeController_GetRecipe_HappyPath()
        {
            var directoryManager              = new DirectoryManager();
            var fileManager                   = new FileManager();
            var deploymentManifestEngine      = new DeploymentManifestEngine(directoryManager, fileManager);
            var consoleInteractiveServiceImpl = new ConsoleInteractiveServiceImpl();
            var consoleOrchestratorLogger     = new ConsoleOrchestratorLogger(consoleInteractiveServiceImpl);
            var commandLineWrapper            = new CommandLineWrapper(consoleOrchestratorLogger);
            var customRecipeLocator           = new CustomRecipeLocator(deploymentManifestEngine, consoleOrchestratorLogger, commandLineWrapper, directoryManager);
            var projectDefinitionParser       = new ProjectDefinitionParser(fileManager, directoryManager);

            var recipeController  = new RecipeController(customRecipeLocator, projectDefinitionParser);
            var recipeDefinitions = await RecipeHandler.GetRecipeDefinitions(customRecipeLocator, null);

            var recipe = recipeDefinitions.First();

            var response = await recipeController.GetRecipe(recipe.Id);

            var result       = Assert.IsType <OkObjectResult>(response);
            var resultRecipe = Assert.IsType <RecipeSummary>(result.Value);

            Assert.Equal(recipe.Id, resultRecipe.Id);
        }
        public DeploymentBundleHandlerTests()
        {
            var awsResourceQueryer = new TestToolAWSResourceQueryer();
            var interactiveService = new TestToolOrchestratorInteractiveService();
            var zipFileManager     = new TestZipFileManager();

            _commandLineWrapper      = new TestToolCommandLineWrapper();
            _directoryManager        = new TestDirectoryManager();
            _projectDefinitionParser = new ProjectDefinitionParser(new FileManager(), new DirectoryManager());

            _deploymentBundleHandler = new DeploymentBundleHandler(_commandLineWrapper, awsResourceQueryer, interactiveService, _directoryManager, zipFileManager);

            _recipeDefinition = new Mock <RecipeDefinition>(
                It.IsAny <string>(),
                It.IsAny <string>(),
                It.IsAny <string>(),
                It.IsAny <DeploymentTypes>(),
                It.IsAny <DeploymentBundleTypes>(),
                It.IsAny <string>(),
                It.IsAny <string>(),
                It.IsAny <string>(),
                It.IsAny <string>(),
                It.IsAny <string>()).Object;
        }