public async Task Verify_Header_SignaturesShouldMatchWhenSignedBySameKeyAfterTransformation()
        {
            // Arrange
            var body   = "happy birthday";
            var secret = "secret1";

            using var context = new TestHttpContext(body);
            context.AddHeader("header", "sha1=c842eb4acaa566b634f845417d8a4593928e9ec4");

            // Act
            var result = await context.Instance.VerifySignatureFromHeaderAsync("header", secret, x => x.Substring(5));

            // Assert
            Assert.True(result.IsValid);
        }
        public async Task Verify_Filter_SuccessReturns200()
        {
            // Arrange
            var body   = "happy birthday";
            var secret = "secret1";
            var next   = new TestRequestDelegate();

            using var context = new TestHttpContext(body);
            context.AddHeader("header", "sha1=c842eb4acaa566b634f845417d8a4593928e9ec4");
            var middleware = new TestVerifySignatureMiddleware(next.Invoke, "header", secret, x => x.Substring(5));

            // Act
            await middleware.Invoke(context.Instance);

            // Assert
            Assert.Equal(200, context.Instance.Response.StatusCode);
            Assert.True(next.Called);
        }