public static void TestWebPubSubTrigger( [WebPubSubTrigger("chat", WebPubSubEventType.System, "connect")] ConnectEventRequest request, WebPubSubConnectionContext connectionContext) { // Valid case use default url for verification. Assert.AreEqual(TestContext, connectionContext); }
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);