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()); }
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; }
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); }