public static void Init() { UnitTestLog unitLog = new Tests.UnitTestLog(); unitLog.LogLevel = MockServer.LoggingMethod.Level.Verbose; server = Server.Instance(); MockServer.LoggingMethod.MockServerLog = unitLog; server.Start(); if (!PubnubCommon.PAMEnabled) { return; } receivedGrantMessage = false; PNConfiguration config = new PNConfiguration { PublishKey = PubnubCommon.PublishKey, SubscribeKey = PubnubCommon.SubscribeKey, SecretKey = PubnubCommon.SecretKey, AuthKey = authKey, Uuid = "mytestuuid", Secure = false }; server.RunOnHttps(false); pubnub = createPubNubInstance(config); string expected = "{\"message\":\"Success\",\"payload\":{\"level\":\"user\",\"subscribe_key\":\"demo-36\",\"ttl\":20,\"channel\":\"foo.*\",\"auths\":{\"myAuth\":{\"r\":1,\"w\":1,\"m\":1}}},\"service\":\"Access Manager\",\"status\":200}"; server.AddRequest(new Request() .WithMethod("GET") .WithPath(string.Format("/v2/auth/grant/sub-key/{0}", PubnubCommon.SubscribeKey)) .WithParameter("auth", authKey) .WithParameter("channel", channel) .WithParameter("m", "1") .WithParameter("pnsdk", PubnubCommon.EncodedSDK) .WithParameter("r", "1") .WithParameter("requestid", "myRequestId") .WithParameter("timestamp", "1356998400") .WithParameter("ttl", "20") .WithParameter("uuid", config.Uuid) .WithParameter("w", "1") .WithParameter("signature", "JMQKzXgfqNo-HaHuabC0gq0X6IkVMHa9AWBCg6BGN1Q=") .WithResponse(expected) .WithStatusCode(System.Net.HttpStatusCode.OK)); pubnub.Grant().Channels(new [] { channel }).AuthKeys(new [] { authKey }).Read(true).Write(true).Manage(true).TTL(20).Async(new UTGrantResult()); Thread.Sleep(1000); grantManualEvent.WaitOne(); pubnub.Destroy(); pubnub.PubnubUnitTest = null; pubnub = null; Assert.IsTrue(receivedGrantMessage, "WhenUnsubscribedToAChannel Grant access failed."); }
public static void Init() { UnitTestLog unitLog = new Tests.UnitTestLog(); unitLog.LogLevel = MockServer.LoggingMethod.Level.Verbose; server = Server.Instance(); MockServer.LoggingMethod.MockServerLog = unitLog; server.Start(); }
public static void Init() { UnitTestLog unitLog = new Tests.UnitTestLog(); unitLog.LogLevel = MockServer.LoggingMethod.Level.Verbose; server = Server.Instance(); MockServer.LoggingMethod.MockServerLog = unitLog; server.Start(); if (!PubnubCommon.PAMServerSideGrant) { return; } receivedGrantMessage = false; PNConfiguration config = new PNConfiguration { PublishKey = PubnubCommon.PublishKey, SubscribeKey = PubnubCommon.SubscribeKey, SecretKey = PubnubCommon.SecretKey, AuthKey = authKey, Uuid = "mytestuuid", }; pubnub = createPubNubInstance(config); string expected = "{\"message\":\"Success\",\"payload\":{\"level\":\"channel-group\",\"subscribe_key\":\"demo-36\",\"ttl\":20,\"channel-groups\":{\"hello_my_group\":{\"r\":1,\"w\":0,\"m\":1}}},\"service\":\"Access Manager\",\"status\":200}"; server.AddRequest(new Request() .WithMethod("GET") .WithPath(string.Format("/v2/auth/grant/sub-key/{0}", PubnubCommon.SubscribeKey)) .WithParameter("auth", authKey) .WithParameter("channel-group", channelGroupName) .WithParameter("m", "1") .WithParameter("pnsdk", PubnubCommon.EncodedSDK) .WithParameter("r", "1") .WithParameter("requestid", "myRequestId") .WithParameter("timestamp", "1356998400") .WithParameter("ttl", "20") .WithParameter("uuid", config.Uuid) .WithParameter("w", "1") .WithParameter("signature", "mnWJN7WSbajMt_LWpuiXGhcs3NUcVbU3L_MZpb9_blU=") .WithResponse(expected) .WithStatusCode(System.Net.HttpStatusCode.OK)); pubnub.Grant().ChannelGroups(new [] { channelGroupName }).AuthKeys(new [] { authKey }).Read(true).Write(true).Manage(true).TTL(20).Execute(new GrantResult()); Thread.Sleep(1000); grantManualEvent.WaitOne(); pubnub.Destroy(); pubnub.PubnubUnitTest = null; pubnub = null; Assert.IsTrue(receivedGrantMessage, "WhenChannelGroupIsRequested Grant access failed."); }
public static void Init() { UnitTestLog unitLog = new Tests.UnitTestLog(); unitLog.LogLevel = MockServer.LoggingMethod.Level.Verbose; server = Server.Instance(); MockServer.LoggingMethod.MockServerLog = unitLog; server.Start(); if (!PubnubCommon.PAMServerSideGrant) { return; } receivedGrantMessage = false; PNConfiguration config = new PNConfiguration { PublishKey = PubnubCommon.PublishKey, SubscribeKey = PubnubCommon.SubscribeKey, SecretKey = PubnubCommon.SecretKey, AuthKey = authKey, Uuid = "mytestuuid", Secure = false }; pubnub = createPubNubInstance(config); string expected = "{\"message\":\"Success\",\"payload\":{\"level\":\"channel-group\",\"subscribe_key\":\"demo-36\",\"ttl\":20,\"channel-groups\":{\"hello_my_group\":{\"r\":1,\"w\":0,\"m\":1}}},\"service\":\"Access Manager\",\"status\":200}"; pubnub.Grant().Channels(new[] { channelName }).AuthKeys(new[] { authKey }).Read(true).Write(true).Manage(true).TTL(20) .Execute(new PNAccessManagerGrantResultExt((r, s) => { if (r != null) { receivedGrantMessage = true; } grantManualEvent.Set(); })); Thread.Sleep(1000); grantManualEvent.WaitOne(); pubnub.Destroy(); pubnub.PubnubUnitTest = null; pubnub = null; Assert.IsTrue(receivedGrantMessage, "WhenFileUploadIsRequested Grant access failed."); }
public static void Init() { UnitTestLog unitLog = new Tests.UnitTestLog(); unitLog.LogLevel = MockServer.LoggingMethod.Level.Verbose; server = Server.Instance(); MockServer.LoggingMethod.MockServerLog = unitLog; server.Start(); if (!PubnubCommon.PAMEnabled) { return; } bool receivedGrantMessage = false; PNConfiguration config = new PNConfiguration { PublishKey = PubnubCommon.PublishKey, SubscribeKey = PubnubCommon.SubscribeKey, SecretKey = PubnubCommon.SecretKey, Uuid = "mytestuuid", Secure = false }; server.RunOnHttps(false); pubnub = createPubNubInstance(config); manualResetEventWaitTimeout = (PubnubCommon.EnableStubTest) ? 1000 : 310 * 1000; ManualResetEvent grantManualEvent = new ManualResetEvent(false); string expected = "{\"message\":\"Success\",\"payload\":{\"level\":\"user\",\"subscribe_key\":\"demo-36\",\"ttl\":20,\"channel\":\"hello_my_channel\",\"auths\":{\"myAuth\":{\"r\":1,\"w\":1,\"m\":1}}},\"service\":\"Access Manager\",\"status\":200}"; server.AddRequest(new Request() .WithMethod("GET") .WithPath(string.Format("/v2/auth/grant/sub-key/{0}", PubnubCommon.SubscribeKey)) .WithParameter("auth", authKey) .WithParameter("channel", "hello_my_channel") .WithParameter("channel-group", "hello_my_group%2Chello_my_group1%2Chello_my_group2") .WithParameter("m", "1") .WithParameter("pnsdk", PubnubCommon.EncodedSDK) .WithParameter("r", "1") .WithParameter("requestid", "myRequestId") .WithParameter("timestamp", "1356998400") .WithParameter("ttl", "20") .WithParameter("uuid", config.Uuid) .WithParameter("w", "1") .WithParameter("signature", "oiUrVMZSf7NEGk6M9JrvpnffmMEy7wWLgYGHwMztIlU=") .WithResponse(expected) .WithStatusCode(System.Net.HttpStatusCode.OK)); pubnub.Grant().AuthKeys(new [] { authKey }).ChannelGroups(new [] { channelGroupName, channelGroupName1, channelGroupName2 }).Channels(new [] { channelName }).Read(true).Write(true).Manage(true).TTL(20) .Async(new PNAccessManagerGrantResultExt( (r, s) => { try { if (r != null && s.StatusCode == 200 && !s.Error) { Console.WriteLine("PNAccessManagerGrantResult={0}", pubnub.JsonPluggableLibrary.SerializeToJsonString(r)); if (r.ChannelGroups != null && r.ChannelGroups.Count > 0) { foreach (KeyValuePair <string, Dictionary <string, PNAccessManagerKeyData> > channelGroupKP in r.ChannelGroups) { receivedGrantMessage = false; string channelGroup = channelGroupKP.Key; var read = r.ChannelGroups[channelGroup][authKey].ReadEnabled; var write = r.ChannelGroups[channelGroup][authKey].WriteEnabled; var manage = r.ChannelGroups[channelGroup][authKey].ManageEnabled; if (read && write && manage) { receivedGrantMessage = true; } else { receivedGrantMessage = false; break; } } } if (r.Channels != null && r.Channels.Count > 0) { foreach (KeyValuePair <string, Dictionary <string, PNAccessManagerKeyData> > channelKP in r.Channels) { receivedGrantMessage = false; string channel = channelKP.Key; var read = r.Channels[channel][authKey].ReadEnabled; var write = r.Channels[channel][authKey].WriteEnabled; var manage = r.Channels[channel][authKey].ManageEnabled; if (read && write && manage) { receivedGrantMessage = true; } else { receivedGrantMessage = false; break; } } } } else { Console.WriteLine("PNStatus={0}", pubnub.JsonPluggableLibrary.SerializeToJsonString(s)); } } catch { /* ignore */ } finally { grantManualEvent.Set(); } })); Thread.Sleep(1000); grantManualEvent.WaitOne(manualResetEventWaitTimeout); pubnub.Destroy(); pubnub.PubnubUnitTest = null; pubnub = null; Assert.IsTrue(receivedGrantMessage, "WhenSubscribedToAChannelGroup Grant access failed."); }
public static void Init() { UnitTestLog unitLog = new Tests.UnitTestLog(); unitLog.LogLevel = MockServer.LoggingMethod.Level.Verbose; server = Server.Instance(); MockServer.LoggingMethod.MockServerLog = unitLog; server.Start(); if (!PubnubCommon.PAMEnabled) { return; } bool receivedGrantMessage = false; string channel = "hello_my_channel"; string authKey = "myAuth"; PNConfiguration config = new PNConfiguration { PublishKey = PubnubCommon.PublishKey, SubscribeKey = PubnubCommon.SubscribeKey, SecretKey = PubnubCommon.SecretKey, AuthKey = authKey, Uuid = "mytestuuid", Secure = false }; server.RunOnHttps(false); pubnub = createPubNubInstance(config); string expected = "{\"message\":\"Success\",\"payload\":{\"level\":\"user\",\"subscribe_key\":\"demo-36\",\"ttl\":20,\"channel\":\"hello_my_channel\",\"auths\":{\"myAuth\":{\"r\":1,\"w\":1,\"m\":1}}},\"service\":\"Access Manager\",\"status\":200}"; server.AddRequest(new Request() .WithMethod("GET") .WithPath(string.Format("/v2/auth/grant/sub-key/{0}", PubnubCommon.SubscribeKey)) .WithParameter("auth", authKey) .WithParameter("channel", channel) .WithParameter("m", "1") .WithParameter("pnsdk", PubnubCommon.EncodedSDK) .WithParameter("r", "1") .WithParameter("requestid", "myRequestId") .WithParameter("timestamp", "1356998400") .WithParameter("ttl", "20") .WithParameter("uuid", config.Uuid) .WithParameter("w", "1") .WithParameter("signature", "JMQKzXgfqNo-HaHuabC0gq0X6IkVMHa9AWBCg6BGN1Q=") .WithResponse(expected) .WithStatusCode(System.Net.HttpStatusCode.OK)); ManualResetEvent grantManualEvent = new ManualResetEvent(false); pubnub.Grant().Channels(new [] { channel }).AuthKeys(new [] { authKey }).Read(true).Write(true).Manage(true).TTL(20) .Async(new PNAccessManagerGrantResultExt( (r, s) => { try { Console.WriteLine("PNStatus={0}", pubnub.JsonPluggableLibrary.SerializeToJsonString(s)); if (r != null) { Console.WriteLine("PNAccessManagerGrantResult={0}", pubnub.JsonPluggableLibrary.SerializeToJsonString(r)); if (r.Channels != null && r.Channels.Count > 0) { var read = r.Channels[channel][authKey].ReadEnabled; var write = r.Channels[channel][authKey].WriteEnabled; if (read && write) { receivedGrantMessage = true; } } } } catch { /* ignore */ } finally { grantManualEvent.Set(); } })); if (!PubnubCommon.EnableStubTest) { Thread.Sleep(1000); } grantManualEvent.WaitOne(); pubnub.Destroy(); pubnub.PubnubUnitTest = null; pubnub = null; Assert.IsTrue(receivedGrantMessage, "WhenAMessageIsPublished Grant access failed."); }
public static void Init() { UnitTestLog unitLog = new Tests.UnitTestLog(); unitLog.LogLevel = MockServer.LoggingMethod.Level.Verbose; server = Server.Instance(); MockServer.LoggingMethod.MockServerLog = unitLog; server.Start(); if (!PubnubCommon.PAMEnabled) { return; } if (PubnubCommon.PAMEnabled && string.IsNullOrEmpty(PubnubCommon.SecretKey)) { return; } bool receivedGrantMessage = false; string channel = "hello_my_channel"; string authKey = "myAuth"; PNConfiguration config = new PNConfiguration { PublishKey = PubnubCommon.PublishKey, SubscribeKey = PubnubCommon.SubscribeKey, SecretKey = PubnubCommon.SecretKey, AuthKey = authKey, Uuid = "mytestuuid", Secure = false }; server.RunOnHttps(false); pubnub = createPubNubInstance(config); ManualResetEvent grantManualEvent = new ManualResetEvent(false); pubnub.Grant().Channels(new[] { channel }).AuthKeys(new[] { authKey }).Read(true).Write(true).Manage(true).TTL(20) .Execute(new PNAccessManagerGrantResultExt( (r, s) => { try { Debug.WriteLine("PNStatus={0}", pubnub.JsonPluggableLibrary.SerializeToJsonString(s)); if (r != null) { Debug.WriteLine("PNAccessManagerGrantResult={0}", pubnub.JsonPluggableLibrary.SerializeToJsonString(r)); if (r.Channels != null && r.Channels.Count > 0) { var read = r.Channels[channel][authKey].ReadEnabled; var write = r.Channels[channel][authKey].WriteEnabled; if (read && write) { receivedGrantMessage = true; } } } } catch { /* ignore */ } finally { grantManualEvent.Set(); } })); if (!PubnubCommon.EnableStubTest) { Thread.Sleep(1000); } grantManualEvent.WaitOne(); pubnub.Destroy(); pubnub.PubnubUnitTest = null; pubnub = null; Assert.IsTrue(receivedGrantMessage, "WhenAMessageIsPublished Grant access failed."); }
public static void Init() { UnitTestLog unitLog = new Tests.UnitTestLog(); unitLog.LogLevel = MockServer.LoggingMethod.Level.Verbose; server = Server.Instance(); MockServer.LoggingMethod.MockServerLog = unitLog; server.Start(); if (!PubnubCommon.PAMServerSideGrant) { return; } bool receivedGrantMessage = false; string[] channelsGrant = { "hello_my_channel", "hello_my_channel1", "hello_my_channel2" }; PNConfiguration config = new PNConfiguration { PublishKey = PubnubCommon.PublishKey, SubscribeKey = PubnubCommon.SubscribeKey, SecretKey = PubnubCommon.SecretKey, AuthKey = authKey, Uuid = "mytestuuid", Secure = true }; server.RunOnHttps(true); pubnub = createPubNubInstance(config); string expected = "{\"message\":\"Success\",\"payload\":{\"level\":\"user\",\"subscribe_key\":\"demo-36\",\"ttl\":20,\"channel\":\"hello_my_channel\",\"auths\":{\"myAuth\":{\"r\":1,\"w\":1,\"m\":1}}},\"service\":\"Access Manager\",\"status\":200}"; server.AddRequest(new Request() .WithMethod("GET") .WithPath(string.Format("/v2/auth/grant/sub-key/{0}", PubnubCommon.SubscribeKey)) .WithParameter("auth", authKey) .WithParameter("channel", "hello_my_channel%2Chello_my_channel1%2Chello_my_channel2") .WithParameter("m", "1") .WithParameter("pnsdk", PubnubCommon.EncodedSDK) .WithParameter("r", "1") .WithParameter("requestid", "myRequestId") .WithParameter("timestamp", "1356998400") .WithParameter("ttl", "20") .WithParameter("uuid", config.Uuid) .WithParameter("w", "1") .WithParameter("signature", "hc7IKhEB7tyL6ENR3ndOOlHqPIG3RmzxwJMSGpofE6Q=") .WithResponse(expected) .WithStatusCode(System.Net.HttpStatusCode.OK)); ManualResetEvent grantManualEvent = new ManualResetEvent(false); pubnub.Grant().Channels(channelsGrant).AuthKeys(new [] { authKey }).Read(true).Write(true).Manage(true).TTL(20) .Execute(new PNAccessManagerGrantResultExt( (r, s) => { try { if (r != null) { Debug.WriteLine("PNAccessManagerGrantResult={0}", pubnub.JsonPluggableLibrary.SerializeToJsonString(r)); if (r.Channels != null && r.Channels.Count > 0) { foreach (KeyValuePair <string, Dictionary <string, PNAccessManagerKeyData> > channelKP in r.Channels) { string receivedChannel = channelKP.Key; if (Array.IndexOf(channelsGrant, receivedChannel) > -1) { var read = r.Channels[receivedChannel][authKey].ReadEnabled; var write = r.Channels[receivedChannel][authKey].WriteEnabled; if (read && write) { receivedGrantMessage = true; } else { receivedGrantMessage = false; } } else { receivedGrantMessage = false; break; } } } } } catch { /* ignore */ } finally { grantManualEvent.Set(); } })); Thread.Sleep(1000); grantManualEvent.WaitOne(); pubnub.Destroy(); pubnub.PubnubUnitTest = null; pubnub = null; Assert.IsTrue(receivedGrantMessage, "WhenSubscribedToAChannel Grant access failed."); }
public static void Init() { UnitTestLog unitLog = new Tests.UnitTestLog(); unitLog.LogLevel = MockServer.LoggingMethod.Level.Verbose; server = Server.Instance(); MockServer.LoggingMethod.MockServerLog = unitLog; server.Start(); if (!PubnubCommon.PAMEnabled) { return; } if (PubnubCommon.PAMEnabled && !string.IsNullOrEmpty(PubnubCommon.SecretKey)) { return; } receivedGrantMessage = false; PNConfiguration config = new PNConfiguration { PublishKey = PubnubCommon.PublishKey, SubscribeKey = PubnubCommon.SubscribeKey, SecretKey = PubnubCommon.SecretKey, AuthKey = authKey, Uuid = "mytestuuid", }; pubnub = createPubNubInstance(config); string expected = "{\"message\":\"Success\",\"payload\":{\"level\":\"user\",\"subscribe_key\":\"demo-36\",\"ttl\":20,\"channels\":{\"hello_my_channel1\":{\"auths\":{\"myAuth\":{\"r\":1,\"w\":1,\"m\":1,\"d\":0}}},\"hello_my_channel2\":{\"auths\":{\"myAuth\":{\"r\":1,\"w\":1,\"m\":1,\"d\":0}}}}},\"service\":\"Access Manager\",\"status\":200}"; server.AddRequest(new Request() .WithMethod("GET") .WithPath(string.Format("/v2/auth/grant/sub-key/{0}", PubnubCommon.SubscribeKey)) .WithParameter("auth", authKey) .WithParameter("channel", string.Format("{0},{1}", channelName1, channelName2)) .WithParameter("m", "1") .WithParameter("pnsdk", PubnubCommon.EncodedSDK) .WithParameter("r", "1") .WithParameter("requestid", "myRequestId") .WithParameter("timestamp", "1356998400") .WithParameter("ttl", "20") .WithParameter("uuid", config.Uuid) .WithParameter("w", "1") .WithParameter("signature", "MhmxFFbUb_HlzWqTuvJAMRjAb3fgP9dbykaiPsSZuUc=") .WithResponse(expected) .WithStatusCode(System.Net.HttpStatusCode.OK)); pubnub.Grant().Channels(new[] { channelName1, channelName2 }).AuthKeys(new[] { authKey }).Read(true).Write(true).Manage(true).TTL(20) .Execute(new PNAccessManagerGrantResultExt((r, s) => { if (r != null) { receivedGrantMessage = true; } grantManualEvent.Set(); })); Thread.Sleep(1000); grantManualEvent.WaitOne(); pubnub.Destroy(); pubnub.PubnubUnitTest = null; pubnub = null; Assert.IsTrue(receivedGrantMessage, "WhenMessageCountIsRequested Grant access failed."); }