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'."); }
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."); }
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."); }
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."); }
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."); }
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)); }
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."); }
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"); }
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); }