public async Task ProcessAsyncShouldThrowExceptionWithUnverifiedSignature()
        {
            var testOptionsVerifyEnabled = new FacebookAdapterOptions()
            {
                VerifyIncomingRequests = true
            };

            var facebookClientWrapper = new Mock <FacebookClientWrapper>(_testOptions);
            var facebookAdapter       = new FacebookAdapter(facebookClientWrapper.Object, testOptionsVerifyEnabled);
            var payload      = File.ReadAllText(Directory.GetCurrentDirectory() + @"/Files/Payload.json");
            var stream       = new MemoryStream(Encoding.UTF8.GetBytes(payload));
            var httpRequest  = new Mock <HttpRequest>();
            var httpResponse = new Mock <HttpResponse>();
            var bot          = new Mock <IBot>();

            httpRequest.SetupGet(req => req.Query[It.IsAny <string>()]).Returns("test");
            httpRequest.SetupGet(req => req.Body).Returns(stream);

            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 Assert.ThrowsAsync <AuthenticationException>(() => facebookAdapter.ProcessAsync(httpRequest.Object, httpResponse.Object, bot.Object, default(CancellationToken)));
        }
        public async void ProcessAsyncShouldVerifyWebhookOnHubModeSubscribe()
        {
            var testOptionsVerifyEnabled = new FacebookAdapterOptions()
            {
                VerifyIncomingRequests = true
            };

            var facebookClientWrapper = new Mock <FacebookClientWrapper>(_testOptions);
            var facebookAdapter       = new FacebookAdapter(facebookClientWrapper.Object, testOptionsVerifyEnabled);
            var httpRequest           = new Mock <HttpRequest>();
            var httpResponse          = new Mock <HttpResponse>();
            var bot = new Mock <IBot>();

            facebookClientWrapper.Setup(api => api.VerifyWebhookAsync(It.IsAny <HttpRequest>(), It.IsAny <HttpResponse>(), It.IsAny <CancellationToken>())).Returns(Task.CompletedTask);
            httpRequest.SetupGet(req => req.Query[It.IsAny <string>()]).Returns("subscribe");

            await facebookAdapter.ProcessAsync(httpRequest.Object, httpResponse.Object, bot.Object, default(CancellationToken));

            bot.Verify(b => b.OnTurnAsync(It.IsAny <TurnContext>(), It.IsAny <CancellationToken>()), Times.Never);
        }
Beispiel #3
0
 public FacebookAdapterWithTag(FacebookClientWrapper facebookClient, FacebookAdapterOptions options, ILogger logger = null)
     : base(facebookClient, options, logger)
 {
 }
Beispiel #4
0
 public FacebookAdapterWithTag(IConfiguration configuration, FacebookAdapterOptions options = null, ILogger logger = null)
     : base(configuration, options, logger)
 {
 }