Пример #1
0
        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);
        }
Пример #2
0
        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)));
            }
        }
Пример #3
0
        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));
            }
        }