public static void TestWebPubSubTrigger(
     [WebPubSubTrigger("chat", WebPubSubEventType.System, "connect")] ConnectEventRequest request,
     WebPubSubConnectionContext connectionContext)
 {
     // Valid case use default url for verification.
     Assert.AreEqual(TestContext, connectionContext);
 }
Ejemplo n.º 2
0
            public override ValueTask <ConnectEventResponse> OnConnectAsync(ConnectEventRequest request, CancellationToken cancellationToken)
            {
                var response = new ConnectEventResponse
                {
                    UserId = request.ConnectionContext.UserId
                };

                return(new ValueTask <ConnectEventResponse>(response));
            }
            public override ValueTask <ConnectEventResponse> OnConnectAsync(ConnectEventRequest request, CancellationToken cancellationToken)
            {
                Assert.NotNull(request);
                Assert.AreEqual("my-host.webpubsub.net", request.ConnectionContext.Origin);

                return(new ValueTask <ConnectEventResponse>(new ConnectEventResponse
                {
                    UserId = request.ConnectionContext.UserId
                }));
            }
        public void TestConnectEventRequestSerialize()
        {
            var connectionContext = new WebPubSubConnectionContext(
                WebPubSubEventType.System,
                null, null, "0f9c97a2f0bf4706afe87a14e0797b11",
                signature: "sha256=7767effcb3946f3e1de039df4b986ef02c110b1469d02c0a06f41b3b727ab561",
                origin: TestUri.Host);

            var claims = new Dictionary <string, string[]>
            {
                { "aaa", new string[] { "a1", "a2" } },
                { "bbb", new string[] { "b1", "b2" } },
                { "ccc", new string[] { "c1", "c2" } },
            };
            var query = new Dictionary <string, string[]>
            {
                { "query1", new string[] { "a1", "a2" } },
                { "query2", new string[] { "b1" } },
            };
            var certs = new List <WebPubSubClientCertificate>
            {
                new WebPubSubClientCertificate("111"),
                new WebPubSubClientCertificate("222")
            };
            var request = new ConnectEventRequest(connectionContext, claims, query, new string[] { "protocol1", "protocol2" }, certs);

            var serilized = JsonSerializer.Serialize(request);

            var converted = JsonSerializer.Deserialize <ConnectEventRequest>(serilized);

            Assert.AreEqual(3, converted.Claims.Count);
            Assert.AreEqual(2, converted.Query.Count);
            Assert.AreEqual(2, converted.Subprotocols.Count);
            Assert.AreEqual(new string[] { "protocol1", "protocol2" }, converted.Subprotocols);
            Assert.NotNull(converted.ClientCertificates);
            Assert.AreEqual(2, converted.ClientCertificates.Count);
        }
 // Test invalid type return 401
 public override ValueTask <ConnectEventResponse> OnConnectAsync(ConnectEventRequest request, CancellationToken cancellationToken)
 {
     throw new UnauthorizedAccessException("Invalid user");
 }
 /// <summary>
 /// Connect event method.
 /// </summary>
 /// <param name="request"><see cref="ConnectedEventRequest"/> to get client connect request information.</param>
 /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to cancel the request.</param>
 /// <returns>Build a valid <see cref="ConnectEventResponse"/> with ConnectEventRequest.CreateResponse().</returns>
 public virtual ValueTask <ConnectEventResponse> OnConnectAsync(ConnectEventRequest request, CancellationToken cancellationToken)
 {
     return(default);