Пример #1
0
        public void SubscribeToChannel_Success()
        {
            RunInitSql("020.SubscribeToChannel_Success", _conn);

            IMessageQueue mq = CreateMQ();

            // getting channel ID
            IMQGetChannelIdParams paramsGetChannelId = mq.CreateGetChannelIdParams();

            paramsGetChannelId.ChannelName = ConfigurationManager.AppSettings["ChannelName"];

            IMQGetChannelIdResult channelId = mq.GetChannelId(paramsGetChannelId);

            // getting subscriber ID
            IMQGetSubscriberIdParams paramsGetSubscriberId = mq.CreateGetSubscriberIdParams();

            paramsGetSubscriberId.SubscriberName = ConfigurationManager.AppSettings["SenderName"];

            IMQGetSubscriberIdResult subscriberId = mq.GetSubscriberId(paramsGetSubscriberId);

            // subscribing
            IMQSubscribeParams paramSubscribe = mq.CreateSubscribeParams();

            paramSubscribe.ChannelId    = (long)channelId.ChannelId;
            paramSubscribe.SubscriberId = (long)subscriberId.SubscriberId;

            var result = mq.Subscribe(paramSubscribe);

            RunFinalizeSql("020.SubscribeToChannel_Success", _conn);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Success);
        }
Пример #2
0
        public void SubscribeToChannel_InvalidChannelId()
        {
            RunInitSql("021.SubscribeToChannel_InvalidChannelId", _conn);

            IMessageQueue mq = CreateMQ();

            // getting channel ID
            long invalidChannelId = 666000666;

            // getting subscriber ID
            IMQGetSubscriberIdParams paramsGetSubscriberId = mq.CreateGetSubscriberIdParams();

            paramsGetSubscriberId.SubscriberName = ConfigurationManager.AppSettings["SenderName"];

            IMQGetSubscriberIdResult subscriberId = mq.GetSubscriberId(paramsGetSubscriberId);

            // subscribing
            IMQSubscribeParams paramSubscribe = mq.CreateSubscribeParams();

            paramSubscribe.ChannelId    = invalidChannelId;
            paramSubscribe.SubscriberId = (long)subscriberId.SubscriberId;

            var result = mq.Subscribe(paramSubscribe);

            RunFinalizeSql("021.SubscribeToChannel_InvalidChannelId", _conn);

            Assert.IsNotNull(result);
            Assert.IsFalse(result.Success);
            Assert.IsNotEmpty(result.Errors);
        }
Пример #3
0
        public void PushMessage_Success()
        {
            RunInitSql("030.PushMessage_Success", _conn);

            IMessageQueue mq = CreateMQ();

            // getting channel ID
            IMQGetChannelIdParams paramsGetChannelId = mq.CreateGetChannelIdParams();

            paramsGetChannelId.ChannelName = ConfigurationManager.AppSettings["ChannelName"];

            IMQGetChannelIdResult channelId = mq.GetChannelId(paramsGetChannelId);

            // getting subscribers ID
            IMQGetSubscriberIdParams paramsSenderId = mq.CreateGetSubscriberIdParams();

            paramsSenderId.SubscriberName = ConfigurationManager.AppSettings["SenderName"];
            IMQGetSubscriberIdResult senderId = mq.GetSubscriberId(paramsSenderId);

            IMQGetSubscriberIdParams paramsRecId = mq.CreateGetSubscriberIdParams();

            paramsSenderId.SubscriberName = ConfigurationManager.AppSettings["ReceiverName"];
            IMQGetSubscriberIdResult receiverId = mq.GetSubscriberId(paramsSenderId);

            // subscribing both
            IMQSubscribeParams paramSubscribe = mq.CreateSubscribeParams();

            paramSubscribe.ChannelId    = (long)channelId.ChannelId;
            paramSubscribe.SubscriberId = (long)senderId.SubscriberId;
            var subscribeResult = mq.Subscribe(paramSubscribe);

            paramSubscribe.SubscriberId = (long)receiverId.SubscriberId;
            subscribeResult             = mq.Subscribe(paramSubscribe);

            // sending message
            IMQPushMessageParams paramsPush = mq.CreatePushMessageParams();

            paramsPush.ChannelId   = (long)channelId.ChannelId;
            paramsPush.SenderId    = (long)senderId.SubscriberId;
            paramsPush.MessageType = ConfigurationManager.AppSettings["TestMessageType"];
            paramsPush.Payload     = ConfigurationManager.AppSettings["TestMessagePayload"];
            paramsPush.RecipientId = null;

            var result = mq.PushMessage(paramsPush);

            RunFinalizeSql("030.PushMessage_Success", _conn);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Success);
            Assert.IsEmpty(result.Errors);
            Assert.Greater(result.MessageId, 0);
        }
Пример #4
0
        public bool Init(string name)
        {
            if (_subscriberId <= 0 && _listener == null)
            {
                IMQRegisterSubscriberParams paramsRegSubs = _mq.CreateRegisterSubscriberParams();
                paramsRegSubs.SubscriberName = name;

                var result = _mq.RegisterSubscriber(paramsRegSubs);
                IMQGetSubscriberIdResult resGetId = null;
                if (!result.Success)
                {
                    IMQGetSubscriberIdParams paramGetId = _mq.CreateGetSubscriberIdParams();
                    paramGetId.SubscriberName = name;

                    resGetId = _mq.GetSubscriberId(paramGetId);
                    if (resGetId.Success)
                    {
                        _subscriberId = (long)resGetId.SubscriberId;
                    }
                }
                else
                {
                    _subscriberId = result.SubscriberId;
                }

                _name = name;

                _listener    = new Task(ListenerThread);
                _isListening = true;
                _listener.Start();


                return(result.Success || (resGetId != null && resGetId.Success));
            }
            else
            {
                return(true);
            }
        }