public void WithDescription()
    {
        // Act
        var stub = StubBuilder.Begin()
                   .WithDescription("stub description")
                   .Build();

        // Assert
        Assert.AreEqual("stub description", stub.Description);
    }
    public void IsDisabled()
    {
        // Act
        var stub = StubBuilder.Begin()
                   .IsDisabled()
                   .Build();

        // Assert
        Assert.IsFalse(stub.Enabled);
    }
    public void WithPriorityAsPriorityType()
    {
        // Act
        var stub = StubBuilder.Begin()
                   .WithPriority(PriorityType.High)
                   .Build();

        // Assert
        Assert.AreEqual(10, stub.Priority);
    }
    public void WithTenant()
    {
        // Act
        var stub = StubBuilder.Begin()
                   .WithTenant("tenant1")
                   .Build();

        // Assert
        Assert.AreEqual("tenant1", stub.Tenant);
    }
    public void WithResponseAsBuilder()
    {
        // Act
        var stub = StubBuilder.Begin()
                   .WithResponse(StubResponseBuilder.Begin())
                   .Build();

        // Assert
        Assert.IsNotNull(stub.Response);
    }
    public void WithPriorityAsInt()
    {
        // Act
        var stub = StubBuilder.Begin()
                   .WithPriority(1)
                   .Build();

        // Assert
        Assert.AreEqual(1, stub.Priority);
    }
    public void WithConditionsAsBuilder()
    {
        // Act
        var stub = StubBuilder.Begin()
                   .WithConditions(StubConditionBuilder.Begin())
                   .Build();

        // Assert
        Assert.IsNotNull(stub.Conditions);
    }
    public void WithId()
    {
        // Act
        var stub = StubBuilder.Begin()
                   .WithId("stub-id")
                   .Build();

        // Assert
        Assert.AreEqual("stub-id", stub.Id);
    }
    public void InScenario()
    {
        // Act
        const string scenario = "scenario-1";
        var          stub     = StubBuilder.Begin()
                                .InScenario(scenario)
                                .Build();

        // Assert
        Assert.AreEqual(scenario, stub.Scenario);
    }
Пример #10
0
    public void WithResponseAsDto()
    {
        // Act
        var response = new StubResponseDto();
        var stub     = StubBuilder.Begin()
                       .WithResponse(response)
                       .Build();

        // Assert
        Assert.AreEqual(response, stub.Response);
    }
Пример #11
0
    public void WithConditionsAsDto()
    {
        // Act
        var conditions = new StubConditionsDto();
        var stub       = StubBuilder.Begin()
                         .WithConditions(conditions)
                         .Build();

        // Assert
        Assert.AreEqual(conditions, stub.Conditions);
    }
Пример #12
0
    public async Task UpdateStubAsync_Builder_ShouldUpdateStub()
    {
        // Arrange
        const string stubId = "stub-id";
        var          client = new HttPlaceholderClient(CreateHttpClient(mock => mock
                                                                        .When(HttpMethod.Put, $"{BaseUrl}ph-api/stubs/{stubId}")
                                                                        .WithPartialContent("OK my dude!")
                                                                        .Respond(HttpStatusCode.NoContent)));

        var input = StubBuilder.Begin()
                    .WithResponse(StubResponseBuilder.Begin().WithTextResponseBody("OK my dude!"));

        // Act / Assert
        await client.UpdateStubAsync(input, "stub-id");
    }
Пример #13
0
    public async Task UpdateAllStubsByTenantAsync_Builder_ShouldUpdateStubs()
    {
        // Arrange
        const string tenant = "01-get";
        var          client = new HttPlaceholderClient(CreateHttpClient(mock => mock
                                                                        .When(HttpMethod.Put, $"{BaseUrl}ph-api/tenants/{tenant}/stubs")
                                                                        .WithPartialContent("stub1")
                                                                        .WithPartialContent("stub2")
                                                                        .Respond(HttpStatusCode.NoContent)));

        var stub1 = StubBuilder.Begin().WithId("stub1");
        var stub2 = StubBuilder.Begin().WithId("stub2");
        var input = new[] { stub1, stub2 };

        // Act / Assert
        await client.UpdateAllStubsByTenantAsync(tenant, input);
    }
Пример #14
0
    public async Task CreateStubAsync_Builder_ShouldCreateStub()
    {
        // Arrange
        var client = new HttPlaceholderClient(CreateHttpClient(mock => mock
                                                               .When(HttpMethod.Post, $"{BaseUrl}ph-api/stubs")
                                                               .WithPartialContent("stub123")
                                                               .Respond("application/json", CreateStubResponse)));
        var input = StubBuilder.Begin().WithId("stub123");

        // 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);
    }
Пример #15
0
    public async Task CreateStubsAsync_Builder_ShouldCreateStub()
    {
        // Arrange
        var client = new HttPlaceholderClient(CreateHttpClient(mock => mock
                                                               .When(HttpMethod.Post, $"{BaseUrl}ph-api/stubs/multiple")
                                                               .WithPartialContent("test-situation1")
                                                               .WithPartialContent("test-situation2")
                                                               .Respond("application/json", CreateStubResponse)));
        var input = new[]
        {
            StubBuilder.Begin().WithId("test-situation1"), StubBuilder.Begin().WithId("test-situation2")
        };

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

        // Assert
        Assert.AreEqual(2, result.Length);
        Assert.AreEqual("test-situation1", result[0].Stub.Id);
        Assert.AreEqual("test-situation2", result[1].Stub.Id);
    }
Пример #16
0
    private static async Task Main(string[] args)
    {
        var services = new ServiceCollection();

        services.AddHttPlaceholderClient(c =>
        {
            c.RootUrl  = "http://*****:*****@"curl 'https://site.com/_nuxt/fonts/fa-solid-900.3eb06c7.woff2' \
  -H 'sec-ch-ua: "" Not A;Brand"";v=""99"", ""Chromium"";v=""96"", ""Google Chrome"";v=""96""' \
  -H 'Referer: ' \
  -H 'Origin: https://site.com' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36' \
  -H 'sec-ch-ua-platform: ""Linux""' \
  --compressed ;
curl 'https://site.com/_nuxt/css/4cda201.css' \
  -H 'authority: site.com' \
  -H 'sec-ch-ua: "" Not A;Brand"";v=""99"", ""Chromium"";v=""96"", ""Google Chrome"";v=""96""' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36' \
  -H 'sec-ch-ua-platform: ""Linux""' \
  -H 'accept: text/css,*/*;q=0.1' \
  -H 'sec-fetch-site: same-origin' \
  -H 'sec-fetch-mode: no-cors' \
  -H 'sec-fetch-dest: style' \
  -H 'accept-language: en-US,en;q=0.9,nl;q=0.8' \
  -H 'cookie: Consent=eyJhbmFseXRpY2FsIjpmYWxzZX0=' \
  --compressed ;
curl 'https://site.com/_nuxt/1d6c3a9.js' \
  -H 'authority: site.com' \
  -H 'sec-ch-ua: "" Not A;Brand"";v=""99"", ""Chromium"";v=""96"", ""Google Chrome"";v=""96""' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36' \
  -H 'sec-ch-ua-platform: ""Linux""' \
  -H 'accept: */*' \
  -H 'sec-fetch-site: same-origin' \
  -H 'sec-fetch-mode: no-cors' \
  -H 'sec-fetch-dest: script' \
  -H 'accept-language: en-US,en;q=0.9,nl;q=0.8' \
  -H 'cookie: Consent=eyJhbmFseXRpY2FsIjpmYWxzZX0=' \
  --compressed";
            var          curlCommandResult = await client.CreateCurlStubsAsync(commands, false);

            // Create stubs based on HTTP archive (HAR).
            var har = await File.ReadAllTextAsync("har.json");

            var harResult = await client.CreateHarStubsAsync(har, false);

            // Create stubs based on OpenAPI definition.
            var openapi = await File.ReadAllTextAsync("petstore.yaml");

            var openApiResult = await client.CreateOpenApiStubsAsync(openapi, false);

            // Execute a scheduled job.
            var scheduledJobResult = await client.ExecuteScheduledJobAsync("CleanOldRequestsJob");

            // Get a list of scheduled job names.
            var scheduledJobNames = await client.GetScheduledJobNamesAsync();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }