public void TestWebPubSubContext_ConnectedEvent() { var context = new WebPubSubConnectionContext(connectionId: "connectionId", userId: "userA", eventName: "connected", eventType: WebPubSubEventType.System, hub: null); var test = new WebPubSubContext(new ConnectedEventRequest(context)); var serialize = JObject.FromObject(test); Assert.NotNull(serialize["request"]); Assert.NotNull(serialize["response"]); Assert.AreEqual("", serialize["errorMessage"].ToString()); Assert.AreEqual("False", serialize["hasError"].ToString()); Assert.AreEqual("False", serialize["isPreflight"].ToString()); }
public void TestWebPubSubContext_DisconnectedEvent() { var test = new WebPubSubContext(new DisconnectedEventRequest(null, "dropped")); var serialize = JObject.FromObject(test); var request = serialize["request"]; Assert.NotNull(request); Assert.AreEqual("dropped", request["reason"].ToString()); Assert.NotNull(serialize["response"]); Assert.AreEqual("", serialize["errorMessage"].ToString()); Assert.AreEqual("False", serialize["hasError"].ToString()); Assert.AreEqual("False", serialize["isPreflight"].ToString()); }
public void TestWebPubSubContext_ErrorResponse() { var test = new WebPubSubContext("Invalid Request", WebPubSubErrorCode.UserError); var serialize = JObject.FromObject(test); var response = serialize["response"]; Assert.Null(serialize["request"]); Assert.NotNull(response); Assert.AreEqual("400", response["status"].ToString()); Assert.AreEqual("Invalid Request", response["body"].ToString()); Assert.AreEqual("Invalid Request", serialize["errorMessage"].ToString()); Assert.AreEqual("True", serialize["hasError"].ToString()); Assert.AreEqual("False", serialize["isPreflight"].ToString()); }
public void TestWebPubSubContext_UserEventStates_Legacy() { var states = new Dictionary <string, object> { { "aKey", "aValue" }, { "bKey", 123 }, { "cKey", new StateTestClass() } }; // Use the Dictionary<string, object> states .ctor overload var context = new WebPubSubConnectionContext( WebPubSubEventType.System, "connected", "hub", "connectionId", "userA", null, null, states, null); var test = new WebPubSubContext(new UserEventRequest(context, BinaryData.FromString("test"), WebPubSubDataType.Text)); var jObj = JObject.FromObject(test); var request = jObj["request"]; Assert.NotNull(request); Assert.AreEqual("test", request["data"].ToString()); Assert.NotNull(jObj["response"]); Assert.AreEqual("", jObj["errorMessage"].ToString()); Assert.AreEqual("False", jObj["hasError"].ToString()); Assert.AreEqual("False", jObj["isPreflight"].ToString()); var context1 = request["connectionContext"]; Assert.NotNull(context1); var states1 = context1["states"]; Assert.NotNull(states1); Assert.AreEqual("\"aValue\"", states1["aKey"].Value <string>()); Assert.NotNull(states1); Assert.AreEqual(123, states1["bKey"].Value <int>()); }
public void TestWebPubSubContext_UserEventStates() { var states = new Dictionary <string, object> { { "aKey", "aValue" }, { "bKey", 123 }, { "cKey", new StateTestClass() } }.EncodeConnectionStates().DecodeConnectionStates().ToDictionary(p => p.Key, p => (BinaryData)p.Value); // Use the Dictionary<string, BinaryData> connectionStates .ctor overload var context = new WebPubSubConnectionContext( eventType: WebPubSubEventType.System, eventName: "connected", hub: null, connectionId: "connectionId", userId: "userA", connectionStates: states); var test = new WebPubSubContext(new UserEventRequest(context, BinaryData.FromString("test"), WebPubSubDataType.Text)); var jObj = JObject.Parse(JsonConvert.SerializeObject(test)); var request = jObj["request"]; Assert.NotNull(request); Assert.AreEqual("test", request["data"].Value <string>()); Assert.NotNull(jObj["response"]); Assert.AreEqual(null, jObj["errorMessage"].Value <string>()); Assert.AreEqual("False", jObj["hasError"].Value <string>()); Assert.AreEqual("False", jObj["isPreflight"].Value <string>()); var context1 = request["connectionContext"]; Assert.NotNull(context1); var states1 = context1["states"]; Assert.NotNull(states1); Assert.AreEqual("aValue", states1["aKey"].Value <string>()); Assert.AreEqual(123, states1["bKey"].Value <int>()); var classStates = states1["cKey"]; Assert.NotNull(classStates); Assert.AreEqual("GA", classStates["Title"].Value <string>()); }
public void TestWebPubSubContext_ConnectEvent() { var context = new WebPubSubConnectionContext(connectionId: "connectionId", userId: "userA", eventName: "connected", eventType: WebPubSubEventType.System, hub: null); var claims = new Dictionary <string, string[]> { { "aa", new string[] { "aa1, aa2" } }, { "bb", new string[] { "bb, bb2" } }, }; var subprotocol = new string[] { "sub1", "sub2" }; var test = new WebPubSubContext(new ConnectEventRequest(context, claims, null, subprotocol, null)); var serialize = JObject.FromObject(test); var request = serialize["request"]; Assert.NotNull(request); Assert.AreEqual(subprotocol, request["subprotocols"].ToObject <string[]>()); Assert.NotNull(serialize["response"]); Assert.AreEqual("", serialize["errorMessage"].ToString()); Assert.AreEqual("False", serialize["hasError"].ToString()); Assert.AreEqual("False", serialize["isPreflight"].ToString()); }
public static void TestFunc( [WebPubSubContext] WebPubSubContext request) { Console.WriteLine(request.HasError); }