Coverage for IsCloudEvent

Signed-off-by: clemensv <clemensv@microsoft.com>
This commit is contained in:
clemensv 2018-11-26 18:42:24 +01:00
parent 89123179af
commit df4f79d40a
3 changed files with 15 additions and 0 deletions

View File

@ -9,6 +9,7 @@ namespace CloudNative.CloudEvents
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Mime;
using System.Text;
using System.Threading.Tasks;
@ -64,6 +65,13 @@ namespace CloudNative.CloudEvents
httpResponseMessage.Headers.Contains(SpecVersionHttpHeader));
}
public static bool IsCloudEvent(this HttpListenerRequest httpListenerRequest)
{
return ((httpListenerRequest.Headers["content-type"] != null &&
httpListenerRequest.Headers["content-type"].StartsWith(CloudEvent.MediaType)) ||
httpListenerRequest.Headers.AllKeys.Contains(SpecVersionHttpHeader));
}
public static CloudEvent ToCloudEvent(this HttpResponseMessage httpResponseMessage,
params ICloudEventExtension[] extensions)
{

View File

@ -34,9 +34,11 @@ namespace CloudNative.CloudEvents.UnitTests
attrs["comexampleextension2"] = new { othervalue = 5 };
var message = new AmqpCloudEventMessage(cloudEvent, ContentMode.Structured, new JsonEventFormatter());
Assert.True(message.IsCloudEvent());
var encodedAmqpMessage = message.Encode();
var message1 = Message.Decode(encodedAmqpMessage);
Assert.True(message1.IsCloudEvent());
var receivedCloudEvent = message1.ToCloudEvent();
Assert.Equal("0.2", receivedCloudEvent.SpecVersion);
@ -75,9 +77,11 @@ namespace CloudNative.CloudEvents.UnitTests
attrs["comexampleextension2"] = new { othervalue = 5 };
var message = new AmqpCloudEventMessage(cloudEvent, ContentMode.Binary, new JsonEventFormatter());
Assert.True(message.IsCloudEvent());
var encodedAmqpMessage = message.Encode();
var message1 = Message.Decode(encodedAmqpMessage);
Assert.True(message1.IsCloudEvent());
var receivedCloudEvent = message1.ToCloudEvent();
Assert.Equal("0.2", receivedCloudEvent.SpecVersion);

View File

@ -148,6 +148,8 @@ namespace CloudNative.CloudEvents.UnitTests
{
try
{
Assert.True(context.Request.IsCloudEvent());
var receivedCloudEvent = context.Request.ToCloudEvent(new JsonEventFormatter());
Assert.Equal("0.2", receivedCloudEvent.SpecVersion);
@ -229,6 +231,7 @@ namespace CloudNative.CloudEvents.UnitTests
var result = await httpClient.GetAsync(new Uri(listenerAddress + "ep"));
Assert.Equal(HttpStatusCode.OK, result.StatusCode);
Assert.True(result.IsCloudEvent());
var receivedCloudEvent = result.ToCloudEvent();
Assert.Equal("0.2", receivedCloudEvent.SpecVersion);