Exemplo n.º 1
0
        public void Fire(BaseRtmResponse response)
        {
            AllMessages?.Invoke(this, new RtmMessageEventArgs <BaseRtmResponse>(response));

            switch (response)
            {
            case HelloResponse helloResponse:
                HelloMessage?.Invoke(this, new RtmMessageEventArgs <HelloResponse>(helloResponse));
                break;

            case PongResponse pongResponse:
                PongMessage?.Invoke(this, new RtmMessageEventArgs <PongResponse>(pongResponse));
                break;

            case UserTypingResponse userTypingResponse:
                UserTypingMessage?.Invoke(this, new RtmMessageEventArgs <UserTypingResponse>(userTypingResponse));
                break;

            case BaseMessageResponse messageResponse:
                switch (messageResponse)
                {
                case BotMessageResponse botMessageResponse:
                    BotMessage?.Invoke(this, new RtmMessageEventArgs <BotMessageResponse>(botMessageResponse));
                    break;

                default:
                    UserMessage?.Invoke(this, new RtmMessageEventArgs <UserMessageResponse>(messageResponse));
                    break;
                }
                break;

            default:
                throw new NotImplementedException();
            }
        }
Exemplo n.º 2
0
        public void Fire_EachResponseType_OnlyRaisesCorrespondingMessageEvent(BaseRtmResponse response)
        {
            subject.Fire(response);

            Assert.That(subject.HelloMessageWasRaised, Is.EqualTo(response is HelloResponse));
            Assert.That(subject.PongMessageWasRaised, Is.EqualTo(response is PongResponse));
            Assert.That(subject.UserTypingWasRaised, Is.EqualTo(response is UserTypingResponse));
            Assert.That(subject.BotMessageWasRaised, Is.EqualTo(response is BotMessageResponse));
            Assert.That(subject.UserMessageWasRaised, Is.EqualTo(response is UserMessageResponse));
        }
Exemplo n.º 3
0
 public void Fire_EachResponseTypes_RaisesAllMessagesEvent(BaseRtmResponse response)
 {
     subject.Fire(response);
     Assert.That(subject.AllMessagesWasRaised, Is.True);
 }
Exemplo n.º 4
0
 public void Fire(BaseRtmResponse response) => publisher.Fire(response);
Exemplo n.º 5
0
 public RtmMessageEventArgs(BaseRtmResponse response)
 {
     Response = response as T;
 }