示例#1
0
        public void TestSignalCommon(bool ssl, bool sendQueryParams)
        {
            string channel   = EditorCommon.GetRandomChannelName();
            string message   = "Test signal";
            string uuid      = "customuuid";
            string signature = "0";

            Dictionary <string, string> queryParams = new Dictionary <string, string>();
            string queryParamString = "";

            if (sendQueryParams)
            {
                queryParams.Add("d", "f");
                queryParamString = "&d=f";
            }
            else
            {
                queryParams = null;
            }

            PNConfiguration pnConfiguration = new PNConfiguration();

            pnConfiguration.Origin           = EditorCommon.Origin;
            pnConfiguration.SubscribeKey     = EditorCommon.SubscribeKey;
            pnConfiguration.PublishKey       = EditorCommon.PublishKey;
            pnConfiguration.CipherKey        = "enigma";
            pnConfiguration.Secure           = ssl;
            pnConfiguration.LogVerbosity     = PNLogVerbosity.BODY;
            pnConfiguration.PresenceTimeout  = 60;
            pnConfiguration.PresenceInterval = 30;
            pnConfiguration.UUID             = uuid;

            PubNubUnity pnUnity = new PubNubUnity(pnConfiguration, null, null);


            string originalMessage = Helpers.JsonEncodePublishMsg(message, "", pnUnity.JsonLibrary, new PNLoggingMethod(pnConfiguration.LogVerbosity));

            Uri uri = BuildRequests.BuildSignalRequest(channel, originalMessage, pnUnity, queryParams);

https:      //ps.pndsn.com/signal/demo/demo/0/UnityUnitTests_69/0/%22Test%20signal%22?uuid=customuuid&pnsdk=PubNub-CSharp-UnityOSX%2F4.3.0
            string expected = string.Format("http{0}://{1}/signal/{2}/{3}/{4}/{5}/0/{6}?uuid={7}&pnsdk={8}{9}",
                                            ssl?"s":"",
                                            pnConfiguration.Origin,
                                            EditorCommon.PublishKey,
                                            EditorCommon.SubscribeKey,
                                            signature,
                                            channel,
                                            Utility.EncodeUricomponent(originalMessage, PNOperationType.PNPublishOperation, false, false),
                                            uuid,
                                            Utility.EncodeUricomponent(pnUnity.Version, PNOperationType.PNPublishOperation, false, false),
                                            queryParamString
                                            );

            string received = uri.OriginalString;

            EditorCommon.LogAndCompare(expected, received);
        }