public async Task InvalidGitHubSignatureHeaderReturnError()
        {
            var eds  = new Mock <Services.IEventDispatchService>();
            var func = FunctionBuilder.Create(eds.Object);

            var wrongSignature = new SampleCallbackData(SampleData.BranchCreate.Body, "wrongsignature", SampleData.BranchCreate.EventName);
            var resp           = await func.InvokeWithContentAndGetResponseAs <ObjectResult>(wrongSignature);

            Assert.AreEqual(StatusCodes.Status400BadRequest, resp.StatusCode);
            eds.Verify(s => s.Process(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <WebhookResult>(), NullLogger.Instance), Times.Never());
        }
Пример #2
0
        private static void configureRequest(HttpRequest req, SampleCallbackData data)
        {
            req.Headers.Add("X-GitHub-Event", data.EventName);
            req.Headers.Add("X-Hub-Signature-256", data.Signature);

            var memStream = new System.IO.MemoryStream();

            using var writer = new System.IO.StreamWriter(memStream, leaveOpen: true);
            writer.Write(data.Body);
            writer.Flush();

            memStream.Position = 0;
            req.Body           = memStream;
        }
Пример #3
0
        public static async Task <TResponse> InvokeWithContentAndGetResponseAs <TResponse>(this GitHubMonitorFunction function, SampleCallbackData data)
            where TResponse : IActionResult
        {
            var result = await function.Invoke(req => configureRequest(req, data));

            Assert.IsInstanceOfType(result, typeof(TResponse));
            return((TResponse)result);
        }