public async Task ExecuteAsync_NoSwagger_ShowsWarning() { ArrangeInputs(commandText: "ls", baseAddress: "http://localhost/", path: "/", urlsWithResponse: null, out MockedShellState shellState, out HttpState httpState, out ICoreParseResult parseResult, out _, out IPreferences preferences); httpState.SwaggerEndpoint = null; ApiDefinition apiDefinition = new ApiDefinition() { DirectoryStructure = new DirectoryStructure(null) }; httpState.ApiDefinition = apiDefinition; ListCommand listCommand = new ListCommand(preferences); await listCommand.ExecuteAsync(shellState, httpState, parseResult, CancellationToken.None); string actualOutput = string.Join(Environment.NewLine, shellState.Output); Assert.Equal(Resources.Strings.ListCommand_Error_NoDirectoryStructure, actualOutput); }
public async Task ExecuteAsync_WithBaseAddressSwaggerAndStructure_NoWarning() { string response = @"{ ""swagger"": ""2.0"", ""info"": { ""title"": ""OpenAPI v2 Spec"", ""version"": ""v1"" }, ""paths"": { ""/api"": { ""get"": { ""tags"": [ ""Employees"" ], ""operationId"": ""GetEmployee"", ""consumes"": [], ""produces"": [ ""text/plain"", ""application/json"", ""text/json"" ], ""parameters"": [], ""responses"": { ""200"": { ""description"": ""Success"", ""schema"": { ""uniqueItems"": false, ""type"": ""array"" } } } } } } }"; ArrangeInputs(commandText: "ls", baseAddress: "http://localhost/", path: "/", urlsWithResponse: new Dictionary <string, string>() { { "http://localhost/swagger.json", response } }, out MockedShellState shellState, out HttpState httpState, out ICoreParseResult parseResult, out _, out IPreferences preferences); httpState.SwaggerEndpoint = new Uri("http://localhost/swagger.json"); ListCommand listCommand = new ListCommand(preferences); await listCommand.ExecuteAsync(shellState, httpState, parseResult, CancellationToken.None); string actualOutput = string.Join(Environment.NewLine, shellState.Output); Assert.DoesNotContain(Resources.Strings.ListCommand_Error_NoBaseAddress, actualOutput, StringComparison.Ordinal); Assert.DoesNotContain(Resources.Strings.ListCommand_Error_NoDirectoryStructure, actualOutput, StringComparison.Ordinal); }
public async Task ExecuteAsync_ReturnsBuilds_WhenObjectTypeIsBuild() { // Arrange var options = CreateValidListOptions(AvmObjectType.Build); var azureClient = CreateValidAzureClient(); azureClient.GetAsync(Arg.Any <string>()).Returns(CreateValidBuildsListJson()); var output = CreateValidOutput(); var listCommand = new ListCommand(options, azureClient, output, TestUtilities.CreateValidUrlStore()); // Act var response = await listCommand.ExecuteAsync(); // Assert output.Received().Write(Arg.Is <string>(res => res.Contains("Build: Build 1"))); }
public async Task ExecuteAsync_ReturnsVariableGroups_WhenObjectTypeIsVariableGroup() { // Arrange var options = CreateValidListOptions(AvmObjectType.VariableGroup); var azureClient = CreateValidAzureClient(); azureClient.GetAsync(Arg.Any <string>()).Returns(CreateValidVariableGroupsList()); var output = CreateValidOutput(); var listCommand = new ListCommand(options, azureClient, output, TestUtilities.CreateValidUrlStore()); // Act await listCommand.ExecuteAsync(); // Assert output.Received().Write(Arg.Is <string>(res => res.Contains("VariableGroup: Variable group"))); }
public async Task ExecuteAsync_ReturnsReleaseJson_WhenDisplayAsJsonIsOn() { // Arrange var options = CreateValidListOptions(AvmObjectType.Release); options.Type = AvmObjectType.Release; options.DisplayAsJson = true; var azureClient = CreateValidAzureClient(); azureClient.GetAsync(Arg.Any <string>()).Returns(CreateValidReleasesListJson()); var output = CreateValidOutput(); var listCommand = new ListCommand(options, azureClient, output, TestUtilities.CreateValidUrlStore()); // Act var response = await listCommand.ExecuteAsync(); // Assert output.Received().Write(Arg.Is <string>(CreateValidReleasesListJson())); }
public async Task ExecuteAsync_WithMethods_MethodsAreUppercase() { string response = @"{ ""swagger"": ""2.0"", ""info"": { ""title"": ""OpenAPI v2 Spec"", ""version"": ""v1"" }, ""paths"": { ""/api"": { ""get"": { }, ""post"": { } } } }"; ArrangeInputs(commandText: "ls", baseAddress: "http://localhost/", path: "/api", urlsWithResponse: new Dictionary <string, string>() { { "http://localhost/swagger.json", response } }, out MockedShellState shellState, out HttpState httpState, out ICoreParseResult parseResult, out _, out IPreferences preferences); httpState.SwaggerEndpoint = new Uri("http://localhost/swagger.json"); ListCommand listCommand = new ListCommand(preferences); await listCommand.ExecuteAsync(shellState, httpState, parseResult, CancellationToken.None); string actualOutput = string.Join(Environment.NewLine, shellState.Output); Assert.Contains("[GET|POST]", actualOutput, StringComparison.Ordinal); }