public async Task IsCloudEventBatch_False(string description, HttpContent content, IDictionary <string, string>?headers) { // Really only present for display purposes. Assert.NotNull(description); var request = new HttpRequestMessage(HttpMethod.Get, ListenerAddress) { Content = content }; HttpClientExtensionsTest.CopyHeaders(headers, request.Headers); var result = await SendRequestAsync(request, context => Task.FromResult(context.Request.IsCloudEventBatch())); Assert.False(result); }
public async Task ToCloudEventBatchAsync_Invalid() { // Most likely accident: calling ToCloudEventBatchAsync with a single event in structured mode. var cloudEvent = new CloudEvent().PopulateRequiredAttributes(); var formatter = new JsonEventFormatter(); var contentBytes = formatter.EncodeStructuredModeMessage(cloudEvent, out var contentType); await ExpectFailure(context => context.Request.ToCloudEventBatchAsync(formatter, EmptyExtensionArray)); await ExpectFailure(context => context.Request.ToCloudEventBatchAsync(formatter, EmptyExtensionSequence)); await ExpectFailure(context => Task.FromResult(context.Request.ToCloudEventBatch(formatter, EmptyExtensionArray))); await ExpectFailure(context => Task.FromResult(context.Request.ToCloudEventBatch(formatter, EmptyExtensionSequence))); async Task ExpectFailure(Func <HttpListenerContext, Task <IReadOnlyList <CloudEvent> > > handler) { var request = HttpClientExtensionsTest.CreateRequestMessage(contentBytes, contentType); request.RequestUri = new Uri(ListenerAddress); await SendRequestAsync(request, context => Assert.ThrowsAsync <ArgumentException>(() => handler(context))); } }
public async Task ToCloudEventBatch_Valid() { var batch = CreateSampleBatch(); var formatter = new JsonEventFormatter(); var contentBytes = formatter.EncodeBatchModeMessage(batch, out var contentType); AssertBatchesEqual(batch, await GetBatchAsync(context => context.Request.ToCloudEventBatchAsync(formatter, EmptyExtensionArray))); AssertBatchesEqual(batch, await GetBatchAsync(context => context.Request.ToCloudEventBatchAsync(formatter, EmptyExtensionSequence))); AssertBatchesEqual(batch, await GetBatchAsync(context => Task.FromResult(context.Request.ToCloudEventBatch(formatter, EmptyExtensionArray)))); AssertBatchesEqual(batch, await GetBatchAsync(context => Task.FromResult(context.Request.ToCloudEventBatch(formatter, EmptyExtensionSequence)))); Task <IReadOnlyList <CloudEvent> > GetBatchAsync(Func <HttpListenerContext, Task <IReadOnlyList <CloudEvent> > > handler) { var request = HttpClientExtensionsTest.CreateRequestMessage(contentBytes, contentType); request.RequestUri = new Uri(ListenerAddress); return(SendRequestAsync(request, handler)); } }