public async void VerifyWebhookAsyncShouldThrowExceptionWithNullResponse()
        {
            var facebookClientWrapper = new FacebookClientWrapper(_testOptions);
            var httpRequest           = new Mock <HttpRequest>();

            await Assert.ThrowsAsync <ArgumentNullException>(async() => { await facebookClientWrapper.VerifyWebhookAsync(httpRequest.Object, null, default); });
        }
        public async void VerifyWebhookAsyncShouldSendUnauthorizedWhenNotVerified()
        {
            var facebookClientWrapper = new FacebookClientWrapper(_testOptions);
            var httpRequest           = new Mock <HttpRequest>();
            var httpResponse          = new Mock <HttpResponse>();

            httpRequest.SetupGet(req => req.Query[It.IsAny <string>()]).Returns("WrongVerifyToken");
            httpResponse.SetupAllProperties();
            httpResponse.Setup(_ => _.Body.WriteAsync(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <CancellationToken>()))
            .Callback((byte[] data, int offset, int length, CancellationToken token) =>
            {
                if (length > 0)
                {
                    var actual = Encoding.UTF8.GetString(data);
                }
            });

            await facebookClientWrapper.VerifyWebhookAsync(httpRequest.Object, httpResponse.Object, default);

            Assert.True(httpResponse.Object.StatusCode == (int)HttpStatusCode.Unauthorized);
        }