Ejemplo n.º 1
0
        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.");
        }
Ejemplo n.º 2
0
        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.");
        }
Ejemplo n.º 4
0
        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.");
        }
Ejemplo n.º 6
0
        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.");
        }
Ejemplo n.º 7
0
        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.");
        }
Ejemplo n.º 8
0
        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.");
        }
Ejemplo n.º 9
0
        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.");
        }