コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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")));
        }
コード例 #4
0
        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")));
        }
コード例 #5
0
        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()));
        }
コード例 #6
0
        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);
        }