Beispiel #1
0
        public async Task RestApiIntegration_Stub_Add_Json_StubIdAlreadyExistsInReadOnlySource_ShouldReturn409()
        {
            // arrange
            var request = new StubDto
            {
                Id = "situation-01"
            };

            var existingStub = new StubModel
            {
                Id = "situation-01"
            };

            ReadOnlyStubSource
            .Setup(m => m.GetStubsAsync())
            .ReturnsAsync(new[] { existingStub });

            // Act
            var exception = await Assert.ThrowsExceptionAsync <SwaggerException <ProblemDetails> >(() => GetFactory()
                                                                                                   .StubClient
                                                                                                   .AddAsync(request));

            // Assert
            Assert.AreEqual(409, exception.StatusCode);
        }
Beispiel #2
0
    public async Task UpdateStubAsync_ShouldUpdateStub()
    {
        // Arrange
        const string stubId = "stub-id";
        var          client = new HttPlaceholderClient(CreateHttpClient(mock => mock
                                                                        .When(HttpMethod.Put, $"{BaseUrl}ph-api/stubs/{stubId}")
                                                                        .WithPartialContent("test-situation")
                                                                        .WithPartialContent("GET")
                                                                        .WithPartialContent("OK my dude!")
                                                                        .Respond(HttpStatusCode.NoContent)));

        var input = new StubDto
        {
            Id         = "test-situation",
            Tenant     = "01-get",
            Conditions = new StubConditionsDto
            {
                Method = "GET",
                Url    = new StubUrlConditionDto
                {
                    Path = "/testtesttest", Query = new Dictionary <string, string> {
                        { "id", "13" }
                    }
                }
            },
            Response = new StubResponseDto {
                StatusCode = 200, Text = "OK my dude!"
            }
        };

        // Act / Assert
        await client.UpdateStubAsync(input, "stub-id");
    }
Beispiel #3
0
    public async Task RestApiIntegration_Stub_Add_Json_StubIdAlreadyExistsInReadOnlySource_ShouldReturn409()
    {
        // arrange
        var stub = new StubDto {
            Id = "situation-01", Response = new StubResponseDto()
        };

        var existingStub = new StubModel {
            Id = "situation-01"
        };

        ReadOnlyStubSource
        .Setup(m => m.GetStubsAsync())
        .ReturnsAsync(new[] { existingStub });

        // Act
        var request = new HttpRequestMessage(HttpMethod.Post, $"{TestServer.BaseAddress}ph-api/stubs")
        {
            Content = new StringContent(JsonConvert.SerializeObject(stub), Encoding.UTF8, Constants.JsonMime)
        };

        using var response = await Client.SendAsync(request);

        // Assert
        Assert.AreEqual(HttpStatusCode.Conflict, response.StatusCode);
    }
Beispiel #4
0
        public async Task <ActionResult> Update([FromBody] StubDto stub, string StubId)
        {
            var command = new UpdateStubCommand {
                StubId = StubId, Stub = Mapper.Map <StubModel>(stub)
            };
            await Mediator.Send(command);

            return(NoContent());
        }
Beispiel #5
0
        public async Task RestApiIntegration_Stub_Add_Client()
        {
            // Arrange
            var request = new StubDto
            {
                Id         = "situation-01",
                Conditions = new StubConditionsDto
                {
                    Method = "GET",
                    Url    = new StubUrlConditionDto
                    {
                        Path  = "/users",
                        Query = new Dictionary <string, string>
                        {
                            { "id", "12" },
                            { "filter", "first_name" }
                        }
                    }
                },
                Response = new StubResponseDto
                {
                    StatusCode = 200,
                    Text       = @"{""first_name"": ""John""}",
                    Headers    = new Dictionary <string, string>
                    {
                        { "Content-Type", "application/json" }
                    }
                }
            };

            // Act
            await GetFactory()
            .StubClient
            .AddAsync(request);

            // Assert
            Assert.AreEqual(1, StubSource.StubModels.Count);
            Assert.AreEqual("situation-01", StubSource.StubModels.First().Id);
        }
    public async Task CreateStubAsync_ShouldCreateStub()
    {
        // Arrange
        var client = new HttPlaceholderClient(CreateHttpClient(mock => mock
                                                               .When(HttpMethod.Post, $"{BaseUrl}ph-api/stubs")
                                                               .WithPartialContent("test-situation")
                                                               .WithPartialContent("GET")
                                                               .WithPartialContent("OK my dude!")
                                                               .Respond("application/json", CreateStubResponse)));
        var input = new StubDto
        {
            Id         = "test-situation",
            Tenant     = "01-get",
            Conditions = new StubConditionsDto
            {
                Method = "GET",
                Url    = new StubUrlConditionDto
                {
                    Path = "/testtesttest", Query = new Dictionary <string, string> {
                        { "id", "13" }
                    }
                }
            },
            Response = new StubResponseDto {
                StatusCode = 200, Text = "OK my dude!"
            }
        };

        // Act
        var result = await client.CreateStubAsync(input);

        // Assert
        Assert.IsNotNull(result.Stub);
        Assert.IsNotNull(result.Metadata);
        Assert.AreEqual("test-situation", result.Stub.Id);
        Assert.AreEqual("GET", result.Stub.Conditions.Method);
    }
Beispiel #7
0
 public async Task <ActionResult <FullStubDto> > Add([FromBody] StubDto stub) =>
 Ok(await Mediator.Send(new AddStubCommand {
     Stub = Mapper.Map <StubModel>(stub)
 }));
    public async Task <ActionResult> Update([FromBody] StubDto stub, string stubId)
    {
        await Mediator.Send(new UpdateStubCommand(stubId, Mapper.Map <StubModel>(stub)));

        return(NoContent());
    }