mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-19 15:31:39 +02:00
remove some files
This commit is contained in:
@@ -1,46 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<AssemblyTitle>WireMock.Net.Logic</AssemblyTitle>
|
|
||||||
<Authors>Stef Heyenrath</Authors>
|
|
||||||
<TargetFrameworks>net45;netstandard1.3</TargetFrameworks>
|
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
|
||||||
<AssemblyName>WireMock.Net.Logic</AssemblyName>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<ApplicationIcon>../WireMock.Net-Logo.ico</ApplicationIcon>
|
|
||||||
<Version>1.0.2.0</Version>
|
|
||||||
<RootNamespace>WireMock</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
|
|
||||||
<DefineConstants>NETSTANDARD</DefineConstants>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="JetBrains.Annotations" Version="10.4.0">
|
|
||||||
<PrivateAssets>All</PrivateAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
|
|
||||||
<PackageReference Include="SimMetrics.Net" Version="1.0.3" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' ">
|
|
||||||
<PackageReference Include="Microsoft.AspNet.WebApi.OwinSelfHost" Version="5.2.3" />
|
|
||||||
<PackageReference Include="Handlebars.Net" Version="1.8.0" />
|
|
||||||
<PackageReference Include="XPath2" Version="1.0.3.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
|
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Owin" Version="1.1.1" />
|
|
||||||
<!--<PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="1.1.1" />-->
|
|
||||||
<PackageReference Include="Handlebars.NetStandard" Version="1.8.1" />
|
|
||||||
<PackageReference Include="System.Threading" Version="4.3.0" />
|
|
||||||
<PackageReference Include="System.Threading.Tasks" Version="4.3.0" />
|
|
||||||
<PackageReference Include="System.Threading.Thread">
|
|
||||||
<Version>4.3.0</Version>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="System.Xml.XmlDocument" Version="4.3.0" />
|
|
||||||
<PackageReference Include="System.Xml.XPath.XmlDocument" Version="4.3.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
namespace WireMock.Net
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// WireMockSettings
|
|
||||||
/// </summary>
|
|
||||||
public class WireMockSettings
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the port.
|
|
||||||
/// </summary>
|
|
||||||
/// <value>
|
|
||||||
/// The port.
|
|
||||||
/// </value>
|
|
||||||
public int? Port { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the use SSL.
|
|
||||||
/// </summary>
|
|
||||||
/// <value>
|
|
||||||
/// The use SSL.
|
|
||||||
/// </value>
|
|
||||||
// ReSharper disable once InconsistentNaming
|
|
||||||
public bool? UseSSL { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the start admin interface.
|
|
||||||
/// </summary>
|
|
||||||
/// <value>
|
|
||||||
/// The start admin interface.
|
|
||||||
/// </value>
|
|
||||||
public bool? StartAdminInterface { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the read static mappings.
|
|
||||||
/// </summary>
|
|
||||||
/// <value>
|
|
||||||
/// The read static mappings.
|
|
||||||
/// </value>
|
|
||||||
public bool? ReadStaticMappings { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the urls.
|
|
||||||
/// </summary>
|
|
||||||
/// <value>
|
|
||||||
/// The urls.
|
|
||||||
/// </value>
|
|
||||||
public string[] Urls { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<Description>WireMock.Net Owin Middleware.</Description>
|
|
||||||
<Version>1.0.0.0</Version>
|
|
||||||
<AssemblyTitle>WireMock.Net</AssemblyTitle>
|
|
||||||
<Authors>Stef Heyenrath</Authors>
|
|
||||||
<TargetFrameworks>net45;netstandard1.3</TargetFrameworks>
|
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
|
||||||
<AssemblyName>WireMock.Net.Middleware</AssemblyName>
|
|
||||||
<PackageId>WireMock.Net.Middleware</PackageId>
|
|
||||||
<PackageTags>tdd;mock;http;wiremock;test;server;unittest</PackageTags>
|
|
||||||
<PackageReleaseNotes>Initial version</PackageReleaseNotes>
|
|
||||||
<PackageIconUrl>https://raw.githubusercontent.com/StefH/WireMock.Net/master/WireMock.Net-Logo.png</PackageIconUrl>
|
|
||||||
<PackageProjectUrl>https://github.com/StefH/WireMock.Net</PackageProjectUrl>
|
|
||||||
<PackageLicenseUrl>https://raw.githubusercontent.com/StefH/WireMock.Net/master/LICENSE</PackageLicenseUrl>
|
|
||||||
<RepositoryType>git</RepositoryType>
|
|
||||||
<RepositoryUrl>https://github.com/StefH/WireMock.Net</RepositoryUrl>
|
|
||||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<ApplicationIcon>../WireMock.Net-Logo.ico</ApplicationIcon>
|
|
||||||
<RootNamespace>WireMock</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
|
|
||||||
<DefineConstants>NETSTANDARD</DefineConstants>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\WireMock.Net\WireMock.Net.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="JetBrains.Annotations" Version="10.4.0">
|
|
||||||
<PrivateAssets>All</PrivateAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
|
|
||||||
<!--<PackageReference Include="SimMetrics.Net" Version="1.0.3" />-->
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' ">
|
|
||||||
<PackageReference Include="Microsoft.AspNet.WebApi.OwinSelfHost" Version="5.2.3" />
|
|
||||||
<PackageReference Include="Handlebars.Net" Version="1.8.0" />
|
|
||||||
<PackageReference Include="XPath2" Version="1.0.3.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
|
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Owin" Version="1.1.1" />
|
|
||||||
<!--<PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="1.1.1" />-->
|
|
||||||
<PackageReference Include="Handlebars.NetStandard" Version="1.8.1" />
|
|
||||||
<PackageReference Include="System.Threading" Version="4.3.0" />
|
|
||||||
<PackageReference Include="System.Threading.Tasks" Version="4.3.0" />
|
|
||||||
<PackageReference Include="System.Threading.Thread">
|
|
||||||
<Version>4.3.0</Version>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="System.Xml.XmlDocument" Version="4.3.0" />
|
|
||||||
<PackageReference Include="System.Xml.XPath.XmlDocument" Version="4.3.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,144 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using WireMock.Logging;
|
|
||||||
using WireMock.Matchers.Request;
|
|
||||||
using System.Linq;
|
|
||||||
#if NETSTANDARD
|
|
||||||
using Microsoft.AspNetCore.Http;
|
|
||||||
#else
|
|
||||||
using Microsoft.Owin;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace WireMock.Owin
|
|
||||||
{
|
|
||||||
#if NETSTANDARD
|
|
||||||
internal class WireMockMiddleware
|
|
||||||
#else
|
|
||||||
internal class WireMockMiddleware : OwinMiddleware
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
private static readonly Task CompletedTask = Task.FromResult(false);
|
|
||||||
private readonly WireMockMiddlewareOptions _options;
|
|
||||||
|
|
||||||
private readonly OwinRequestMapper _requestMapper = new OwinRequestMapper();
|
|
||||||
private readonly OwinResponseMapper _responseMapper = new OwinResponseMapper();
|
|
||||||
|
|
||||||
#if NETSTANDARD
|
|
||||||
public WireMockMiddleware(RequestDelegate next, WireMockMiddlewareOptions options)
|
|
||||||
{
|
|
||||||
_options = options;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
public WireMockMiddleware(OwinMiddleware next, WireMockMiddlewareOptions options) : base(next)
|
|
||||||
{
|
|
||||||
_options = options;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if NETSTANDARD
|
|
||||||
public async Task Invoke(HttpContext ctx)
|
|
||||||
#else
|
|
||||||
public override async Task Invoke(IOwinContext ctx)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
if (_options.RequestProcessingDelay > TimeSpan.Zero)
|
|
||||||
{
|
|
||||||
await Task.Delay(_options.RequestProcessingDelay.Value);
|
|
||||||
// Thread.Sleep(_options.RequestProcessingDelay.Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
var request = await _requestMapper.MapAsync(ctx.Request);
|
|
||||||
|
|
||||||
ResponseMessage response = null;
|
|
||||||
Mapping targetMapping = null;
|
|
||||||
RequestMatchResult requestMatchResult = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var mappings = _options.Mappings
|
|
||||||
.Select(m => new
|
|
||||||
{
|
|
||||||
Mapping = m,
|
|
||||||
MatchResult = m.IsRequestHandled(request)
|
|
||||||
})
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
if (_options.AllowPartialMapping)
|
|
||||||
{
|
|
||||||
var partialMappings = mappings
|
|
||||||
.Where(pm => pm.Mapping.IsAdminInterface && pm.MatchResult.IsPerfectMatch || !pm.Mapping.IsAdminInterface)
|
|
||||||
.OrderBy(m => m.MatchResult)
|
|
||||||
.ThenBy(m => m.Mapping.Priority)
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
var bestPartialMatch = partialMappings.FirstOrDefault(pm => pm.MatchResult.AverageTotalScore > 0.0);
|
|
||||||
|
|
||||||
targetMapping = bestPartialMatch?.Mapping;
|
|
||||||
requestMatchResult = bestPartialMatch?.MatchResult;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var perfectMatch = mappings
|
|
||||||
.OrderBy(m => m.Mapping.Priority)
|
|
||||||
.FirstOrDefault(m => m.MatchResult.IsPerfectMatch);
|
|
||||||
|
|
||||||
targetMapping = perfectMatch?.Mapping;
|
|
||||||
requestMatchResult = perfectMatch?.MatchResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (targetMapping == null)
|
|
||||||
{
|
|
||||||
response = new ResponseMessage { StatusCode = 404, Body = "No matching mapping found" };
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (targetMapping.IsAdminInterface && _options.AuthorizationMatcher != null)
|
|
||||||
{
|
|
||||||
string authorization;
|
|
||||||
bool present = request.Headers.TryGetValue("Authorization", out authorization);
|
|
||||||
if (!present || _options.AuthorizationMatcher.IsMatch(authorization) < 1.0)
|
|
||||||
{
|
|
||||||
response = new ResponseMessage { StatusCode = 401 };
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
response = await targetMapping.ResponseTo(request);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
response = new ResponseMessage { StatusCode = 500, Body = ex.ToString() };
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
var log = new LogEntry
|
|
||||||
{
|
|
||||||
Guid = Guid.NewGuid(),
|
|
||||||
RequestMessage = request,
|
|
||||||
ResponseMessage = response,
|
|
||||||
MappingGuid = targetMapping?.Guid,
|
|
||||||
MappingTitle = targetMapping?.Title,
|
|
||||||
RequestMatchResult = requestMatchResult
|
|
||||||
};
|
|
||||||
|
|
||||||
LogRequest(log);
|
|
||||||
|
|
||||||
await _responseMapper.MapAsync(response, ctx.Response);
|
|
||||||
}
|
|
||||||
|
|
||||||
await CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The log request.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="entry">The request.</param>
|
|
||||||
private void LogRequest(LogEntry entry)
|
|
||||||
{
|
|
||||||
lock (((ICollection)_options.LogEntries).SyncRoot)
|
|
||||||
{
|
|
||||||
_options.LogEntries.Add(entry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user