Ejemplo n.º 1
0
        public async Task GetTemplateProject_UnknownPackaging_Should_Return_BadRequest()
        {
            // Arrange
            var executor = new Mock <ICommandExecutor>();

            executor.Setup(c =>
                           c.ExecuteAsync($"{NetCoreTool.Command} new mytemplate --output=Sample --myoption=unknown",
                                          It.IsAny <string>(), -1))
            .ReturnsAsync(new CommandResult
            {
                ExitCode = 0,
                Output   = "",
                Error    = @"
Error: Invalid parameter(s):
--myoption unknown
    'unknown' is not a valid value for --myoption
",
            }
                          );
            var controller = new NewController(executor.Object);

            // Act
            var result = await controller.GetTemplateProject("mytemplate", packaging : "acme-packaging");

            // Assert
            var badRequest = Assert.IsType <BadRequestObjectResult>(result);

            badRequest.Value.Should().Be("Unknown or unsupported packaging 'acme-packaging'.");
        }
Ejemplo n.º 2
0
        public async Task GetTemplateProject_UnknownOutput_Should_Return_InternalServerError()
        {
            // Arrange
            var executor = new Mock <ICommandExecutor>();

            executor.Setup(c => c.ExecuteAsync(It.IsAny <string>(), It.IsAny <string>(), -1))
            .ReturnsAsync(new CommandResult
            {
                ExitCode = 0,
                Output   = @"
Unexpected output.
",
                Error    = "",
            }
                          );
            var controller = new NewController(executor.Object);

            // Act
            var result = await controller.GetTemplateProject("mytemplate");

            // Assert
            var internalServerError = Assert.IsType <ObjectResult>(result);

            internalServerError.StatusCode.Should().Be(StatusCodes.Status500InternalServerError);
            internalServerError.Value.Should().Be("Unexpected output.");
        }
Ejemplo n.º 3
0
        public async Task GetTemplateProject_UnknownSwitch2_Should_Return_NotFound()
        {
            // Arrange
            var executor = new Mock <ICommandExecutor>();

            executor.Setup(c =>
                           c.ExecuteAsync($"{NetCoreTool.Command} new mytemplate --output=Sample --unknown-switch",
                                          It.IsAny <string>(), -1))
            .ReturnsAsync(new CommandResult
            {
                ExitCode = 5,
                Error    = @"
Error: Invalid option(s):
--unknown-switch
   '--unknown-switch' is not a valid option
",
            }
                          );
            var controller = new NewController(executor.Object);

            // Act
            var result = await controller.GetTemplateProject("mytemplate", "unknown-switch");

            // Assert
            var notFound = Assert.IsType <NotFoundObjectResult>(result);

            notFound.Value.Should().Be("Switch 'unknown-switch' not found.");
        }
Ejemplo n.º 4
0
        public async Task GetTemplateProject_UnknownParameter_Should_Return_NotFound()
        {
            // Arrange
            var executor = new Mock <ICommandExecutor>();

            executor.Setup(c =>
                           c.ExecuteAsync($"{NetCoreTool.Command} new mytemplate --output=Sample --myoption=unknown",
                                          It.IsAny <string>(), -1))
            .ReturnsAsync(new CommandResult
            {
                ExitCode = 0,
                Output   = "",
                Error    = @"
Error: Invalid parameter(s):
--myoption unknown
    'unknown' is not a valid value for --myoption
",
            }
                          );
            var controller = new NewController(executor.Object);

            // Act
            var result = await controller.GetTemplateProject("mytemplate", "myoption=unknown");

            // Assert
            var notFound = Assert.IsType <NotFoundObjectResult>(result);

            notFound.Value.Should().Be("Option 'myoption' parameter 'unknown' not found.");
        }
Ejemplo n.º 5
0
        public async Task GetTemplateProject_UnknownTemplate_Should_Return_NotFound()
        {
            // Arrange
            var executor = new Mock <ICommandExecutor>();

            executor.Setup(c =>
                           c.ExecuteAsync($"{NetCoreTool.Command} new nosuchtemplate --output=Sample", It.IsAny <string>(), -1))
            .ReturnsAsync(new CommandResult
            {
                ExitCode = 14,
                Error    = @"
No templates found matching: 'nosuchtemplate'.
",
            }
                          );
            var controller = new NewController(executor.Object);

            // Act
            var result = await controller.GetTemplateProject("nosuchtemplate");

            // Assert
            var notFound = Assert.IsType <NotFoundObjectResult>(result);

            notFound.Value.Should().Be("Template 'nosuchtemplate' not found.");
        }
Ejemplo n.º 6
0
        public async Task GetTemplateProject_Can_Specify_ZipPackaging()
        {
            // Arrange
            var executor = new Mock <ICommandExecutor>();

            executor.Setup(c => c.ExecuteAsync($"{NetCoreTool.Command} new mytemplate --output=Sample",
                                               It.IsAny <string>(), -1))
            .ReturnsAsync(new CommandResult
            {
                ExitCode = 0,
                Output   = @"
The template ""mytemplate"" was created successfully.
",
                Error    = "",
            }
                          );
            var controller = new NewController(executor.Object);

            // Act
            var result = await controller.GetTemplateProject("mytemplate", packaging : "zip");

            // Assert
            var file = Assert.IsType <FileContentResult>(result);
            var _    = new ZipArchive(new MemoryStream(file.FileContents));
        }
Ejemplo n.º 7
0
        public async Task GetTemplateProject_Can_Specify_Output()
        {
            // Arrange
            var executor = new Mock <ICommandExecutor>();

            executor.Setup(c => c.ExecuteAsync($"{NetCoreTool.Command} new mytemplate --output=Joe",
                                               It.IsAny <string>(), -1))
            .ReturnsAsync(new CommandResult
            {
                ExitCode = 0,
                Output   = @"
The template ""mytemplate"" was created successfully.
",
                Error    = "",
            }
                          );
            var controller = new NewController(executor.Object);

            // Act
            var result = await controller.GetTemplateProject("mytemplate", "output=Joe");

            // Assert
            var file = Assert.IsType <FileContentResult>(result);

            file.FileDownloadName.Should().StartWith("Joe.");
        }
Ejemplo n.º 8
0
        public async Task GetTemplateProject_Should_Use_Defaults()
        {
            // Arrange
            var executor = new Mock <ICommandExecutor>();

            executor.Setup(c => c.ExecuteAsync($"{NetCoreTool.Command} new mytemplate --output=Sample",
                                               It.IsAny <string>(), -1))
            .ReturnsAsync(new CommandResult
            {
                ExitCode = 0,
                Output   = @"
The template ""mytemplate"" was created successfully.
",
                Error    = "",
            }
                          );
            var controller = new NewController(executor.Object);

            // Act
            var result = await controller.GetTemplateProject("mytemplate");

            // Assert
            var file = Assert.IsType <FileContentResult>(result);

            file.ContentType.Should().Be("application/zip");
            file.FileDownloadName.Should().Be("Sample.zip");
        }
Ejemplo n.º 9
0
        public async Task GetTemplateProject_Should_Return_ProjectPackage()
        {
            // Arrange
            var executor = new Mock <ICommandExecutor>();

            executor.Setup(c => c.ExecuteAsync($"{NetCoreTool.Command} new mytemplate --output=Sample",
                                               It.IsAny <string>(), -1))
            .ReturnsAsync(new CommandResult
            {
                ExitCode = 0,
                Output   = @"
The template ""mytemplate"" was created successfully.
",
                Error    = "",
            }
                          );
            var controller = new NewController(executor.Object);

            // Act
            var result = await controller.GetTemplateProject("mytemplate");

            // Assert
            Assert.IsType <FileContentResult>(result);
        }