public void InvokeProcessMessage(MessageListenerEventArgs mle)
        {
            if (MessageHasPairedValues(mle))
            {
                var auctionEvent = AuctionEvent.From(mle.Message.Body);

                switch (auctionEvent.Type)
                {
                case "CLOSE":
                    _auctionEventListener.AuctionClosed();
                    break;

                case "PRICE":
                    _auctionEventListener.CurrentPrice(auctionEvent.CurrentPrice, auctionEvent.Increment, auctionEvent.IsFrom(_sniperId));
                    break;

                default:
                    string messageDetail =
                        $"Message type: {auctionEvent.Type} not handled, from message {mle.Message.Body}";
                    throw new Exception(messageDetail);
                }
            }
            else
            {
                if (mle.Message.Body.Contains(SharedConstants.STATUS_JOINING))
                {
                    _auctionEventListener.JoiningAuction();
                }
            }
        }
Пример #2
0
        public void NotifiesAuctionClosedWhenCloseMessageReceived()
        {
            amt.ProcessMessage(new Message(new XmlDocument())
            {
                Body = SOLProtocol.CLOSE_EVENT_FORMAT
            });

            A.CallTo(() => auctionEventListener.AuctionClosed()).MustHaveHappened(Repeated.Exactly.Once);
        }
Пример #3
0
        public void NotifiesAuctionClosedWhenCloseMessageReceived()
        {
            _mockListener.AuctionClosed();

            _mocks.ReplayAll();

            var message = new Message(UNUSED_CHAT)
            {
                Body = "SOLVersion: 1.1; Event: CLOSE;"
            };
            var mlea = new MessageListenerEventArgs(message);

            _translator.InvokeProcessMessage(mlea);
        }
        public AuctionMessageTranslator(JID inSniperJId, IAuctionEventListener inListener)
        {
            mSniperId = inSniperJId;

            mParser.RegisterAction("CLOSE", (ev) => {
                inListener.AuctionClosed();
            });
            mParser.RegisterAction("PRICE", (ev) => {
                inListener.CurrentPrice(
                    ev.IntegerValueOf("CurrentPrice"),
                    ev.IntegerValueOf("Increment"),
                    ev.PriceSourceFrom(mSniperId)
                );
            });
        }
Пример #5
0
        public AuctionMessageTranslator(JID inSniperJId, IAuctionEventListener inListener)
        {
            mSniperId = inSniperJId;

            mParser.RegisterAction("CLOSE", (ev) => {
                inListener.AuctionClosed();
            });
            mParser.RegisterAction("PRICE", (ev) => {
                inListener.CurrentPrice(
                    ev.IntegerValueOf("CurrentPrice"),
                    ev.IntegerValueOf("Increment"),
                    ev.PriceSourceFrom(mSniperId)
                    );
            });
        }
Пример #6
0
        public void ProcessMessage(jabber.protocol.client.Message message)
        {
            AuctionEvent ev = AuctionEvent.From(message.Body);

            switch (ev.Type)
            {
            case "CLOSE":
                _listener.AuctionClosed();
                break;

            case "PRICE":
                _listener.CurrentPrice(ev.CurrentPrice, ev.Increment, ev.IsFrom(_sniperId));
                break;

            default:
                throw new Exception("Invalid message");
            }
        }