Skip to content

WireMock as a standalone process

Stef Heyenrath edited this page Jun 19, 2017 · 15 revisions

WireMock as a standalone process

This is quite straight forward to launch a mock server within a console application.

Option 1 : using the WireMock.Net.StandAlone library.

(https://www.nuget.org/packages/WireMock.Net.StandAlone/)

class Program
{
    static void Main(string[] args)
    {
        StandAloneApp.Start(args);

        Console.WriteLine("Press any key to stop the server");
        Console.ReadKey();
    }
}

Option 2 : using the WireMock.Net.StandAlone library using the settings object

class Program
{
    static void Main(string[] args)
    {
        var settings = new FluentMockServerSettings { }; // see source code for all the possible properties
        bool allowPartialMapping = true;
        StandAloneApp.Start(settings, allowPartialMapping);

        Console.WriteLine("Press any key to stop the server");
        Console.ReadKey();
    }
}

Option 3 : coding yourself

static void Main(string[] args)
{
    int port;
    if (args.Length == 0 || !int.TryParse(args[0], out port))
        port = 8080;

    var server = FluentMockServer.Start(port);
    Console.WriteLine("FluentMockServer running at {0}", server.Port);

    server
        .Given(Request.Create().WithUrl(u => u.Contains("x")).UsingGet())
        .RespondWith(Response.Create()
            .WithStatusCode(200)
            .WithHeader("Content-Type", "application/json")
            .WithBody(@"{ ""result"": ""/x with FUNC 200""}"));

    server
        .Given(Request.Create().WithUrl("/*").UsingGet())
        .RespondWith(Response.Create()
            .WithStatusCode(200)
            .WithHeader("Content-Type", "application/json")
            .WithBody(@"{ ""msg"": ""Hello world!""}")
        );

    server
        .Given(Request.Create().WithUrl("/data").UsingPost().WithBody(b => b.Contains("e")))
        .RespondWith(Response.Create()
            .WithStatusCode(201)
            .WithHeader("Content-Type", "application/json")
            .WithBody(@"{ ""result"": ""data posted with FUNC 201""}"));

    server
        .Given(Request.Create().WithUrl("/data").UsingPost())
        .RespondWith(Response.Create()
            .WithStatusCode(201)
            .WithHeader("Content-Type", "application/json")
            .WithBody(@"{ ""result"": ""data posted with 201""}"));

    server
        .Given(Request.Create().WithUrl("/data").UsingDelete())
        .RespondWith(Response.Create()
            .WithStatusCode(200)
            .WithHeader("Content-Type", "application/json")
            .WithBody(@"{ ""result"": ""data deleted with 200""}"));

    Console.WriteLine("Press any key to stop the server");
    Console.ReadKey();

    Console.WriteLine("Displaying all requests");
    var allRequests = server.RequestLogs;
    Console.WriteLine(JsonConvert.SerializeObject(allRequests, Formatting.Indented));

    Console.WriteLine("Press any key to quit");
    Console.ReadKey();
}
Clone this wiki locally