WithCallback should use also use enum HttpStatusCode (#535)

* Fix #533

* simplyfy code
This commit is contained in:
Stef Heyenrath
2020-11-10 09:20:57 +00:00
committed by GitHub
parent e107b5cfca
commit a0fdc002c8
5 changed files with 232 additions and 189 deletions

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
@@ -79,16 +80,21 @@ namespace WireMock.Owin.Mappers
break;
}
switch (responseMessage.StatusCode)
var statusCodeType = responseMessage.StatusCode?.GetType();
switch (statusCodeType)
{
case int statusCodeAsInteger:
response.StatusCode = MapStatusCode(statusCodeAsInteger);
case Type typeAsIntOrEnum when typeAsIntOrEnum == typeof(int) || typeAsIntOrEnum == typeof(int?) || typeAsIntOrEnum.GetTypeInfo().IsEnum:
response.StatusCode = MapStatusCode((int)responseMessage.StatusCode);
break;
case Type typeAsString when typeAsString == typeof(string):
// Note: this case will also match on null
int.TryParse(responseMessage.StatusCode as string, out int result);
response.StatusCode = MapStatusCode(result);
break;
case string statusCodeAsString:
// Note: this case will also match on null
int.TryParse(statusCodeAsString, out int result);
response.StatusCode = MapStatusCode(result);
default:
break;
}