Noah Lerner 5e76a82a21 Improved relative path checking based on file existence (#411)
* Improved relative path checking based on file existence

If the file exists at the relative path, then use it. If not, then use the path as is.

* Apply File.Exists logic to ReadResponseBodyAsString as well

* Make path handling more robust since path is user defined

* Unit tests for relative path feature

* Replace all back and forward slashes with system dependent DirectorySeparatorChar

* Attempt fix broken directory separator chars for Unix platforms

* Revert wrapping GetMappingFolder with CleanPath

* Move CleanPath logic to its own class

* Remove whitespace

* Remove more whitespace

* Improve CleanPath method

* Move PathUtils tests to separate class

Add another test to ResponseWithBodyFromFileTests

* Fix Response_ProvideResponse_WithBodyFromFile_InAdminMappingFolder

* Debug Linux CI build

* Debug Linux CI

* print all files from admin mappings folder

* Debug CleanPath

* Fix removed leading directory separator char in Linux breaks file path

Remove debugging statements

* Move combine to PathUtils

* PathUtils + PathUtilsTests

* Remove replicated (3x) tests throughout ResponseWithBodyFromFileTests

Co-authored-by: Stef Heyenrath <Stef.Heyenrath@gmail.com>
2020-02-02 13:49:34 +01:00
2018-11-15 14:30:51 +00:00
2019-08-18 17:07:07 +02:00
2019-10-31 07:23:41 +01:00
2019-08-16 16:11:59 +00:00
2017-02-05 10:54:27 +01:00
2020-01-25 12:29:13 +01:00
2020-01-25 12:39:36 +01:00
2019-11-08 17:39:46 +01:00
2018-09-22 08:41:24 +02:00
2020-01-27 18:51:31 +01:00
2017-01-17 20:44:53 +01:00
2019-12-27 16:01:13 +01:00
2018-03-17 13:20:18 +01:00
2017-01-20 21:25:18 +01:00

WireMock.Net

A C# .NET version based on mock4net which mimics the functionality from the JAVA based WireMock.org.

Key Features

  • HTTP response stubbing, matchable on URL/Path, headers, cookies and body content patterns
  • Library can be used in unit tests and integration tests
  • Runs as a standalone process, as windows service, as Azure/IIS or as docker
  • Configurable via a fluent DotNet API, JSON files and JSON over HTTP
  • Record/playback of stubs (proxying)
  • Per-request conditional proxying
  • Stateful behaviour simulation
  • Response templating / transformation using Handlebars and extensions
  • Can be used locally or in CI/CD scenarios.

Info

Project  
  Chat Gitter
  Issues GitHub issues
Quality  
  Build Azure Build Status Azure
  CodeFactor CodeFactor
  Sonar Quality Gate Sonar Quality Gate
  Sonar Bugs Sonar Bugs
  Sonar Code Smells Sonar Code Smells
  Sonar Coverage Sonar Coverage
  Codecov codecov
  Coveralls Coverage Status

NuGet packages

Official Preview
  WireMock.Net NuGet Badge WireMock.Net MyGet Badge WireMock.Net
  WireMock.Net.StandAlone NuGet Badge WireMock.Net MyGet Badge WireMock.Net.StandAlone
  WireMock.Net.RestClient NuGet Badge WireMock.Net.RestClient MyGet Badge WireMock.Net.RestClient

Development

For the supported frameworks and build information, see this page.

Stubbing

A core feature of WireMock.Net is the ability to return predefined HTTP responses for requests matching criteria. See Wiki : Stubbing.

Request Matching

WireMock.Net support advanced request-matching logic, see Wiki : Request Matching.

Response Templating

The response which is returned WireMock.Net can be changed using templating. This is described here Wiki : Response Templating.

Admin API Reference

The WireMock admin API provides functionality to define the mappings via a http interface see Wiki : Admin API Reference.

Using

WireMock.Net can be used in several ways:

UnitTesting

You can use your favorite test framework and use WireMock within your tests, see Wiki : UnitTesting.

As standalone process / console application

This is quite straight forward to launch a mock server within a console application, see Wiki : Standalone Process.

As a Windows Service

You can also run WireMock.Net as a Windows Service, follow this WireMock-as-a-Windows-Service.

As a Web Job in Azure or application in IIS

See this link WireMock-as-a-(Azure)-Web-App

In a docker container

There is also a Linux and Windows-Nano container available at hub.docker.com. For more details see also Docker.

HTTPS / SSL

More details on using HTTPS (SSL) can be found here Wiki : HTTPS

Description
No description provided
Readme Apache-2.0 23 MiB
Latest
2025-12-25 15:01:19 +01:00
Languages
C# 99.4%
CSS 0.3%
HTML 0.2%