public void WhenCancellingTheSendMessageInteraction_ThenDoesNothing()
        {
            var serviceMock = new Mock <IChatService>(MockBehavior.Strict);

            serviceMock.SetupSet(svc => svc.Connected = true);
            serviceMock.Setup(svc => svc.GetContacts(It.IsAny <Action <IOperationResult <IEnumerable <Contact> > > >()));

            var viewModel = new ChatViewModel(serviceMock.Object);

            InteractionRequestedEventArgs args = null;

            viewModel.SendMessageRequest.Raised += (s, e) => args = e;

            viewModel.SendMessage();

            Assert.IsNotNull(args);

            var sendMessage = args.Context as SendMessageViewModel;

            sendMessage.Result = false;

            args.Callback();

            serviceMock.VerifyAll();
        }
        public void WhenSendingMessage_ThenUpdatesAndNotifiesSendingMessage()
        {
            var contact = new Contact();
            var message = "message";
            Action <IOperationResult <IEnumerable <Contact> > > getContactsCallback = null;
            Action <IOperationResult> sendMessageCallback = null;

            var serviceMock = new Mock <IChatService>(MockBehavior.Strict);

            serviceMock
            .SetupSet(svc => svc.Connected = true);
            serviceMock
            .Setup(svc => svc.GetContacts(It.IsAny <Action <IOperationResult <IEnumerable <Contact> > > >()))
            .Callback <Action <IOperationResult <IEnumerable <Contact> > > >(cb => getContactsCallback = cb);
            serviceMock
            .Setup(svc => svc.SendMessage(contact, message, It.IsAny <Action <IOperationResult> >()))
            .Callback <Contact, string, Action <IOperationResult> >((c, m, cb) => sendMessageCallback = cb);


            var getContactsOperationMock = new Mock <IOperationResult <IEnumerable <Contact> > >();

            getContactsOperationMock.SetupGet(or => or.Result).Returns(new[] { contact });

            var viewModel = new ChatViewModel(serviceMock.Object);

            InteractionRequestedEventArgs args = null;

            viewModel.SendMessageRequest.Raised += (s, e) => args = e;

            getContactsCallback(getContactsOperationMock.Object);

            viewModel.ContactsView.MoveCurrentTo(contact);

            var tracker = new PropertyChangeTracker(viewModel);

            Assert.IsFalse(viewModel.SendingMessage);

            viewModel.SendMessage();

            Assert.IsFalse(viewModel.SendingMessage);

            var sendMessage = args.Context as SendMessageViewModel;

            sendMessage.Result  = true;
            sendMessage.Message = message;

            args.Callback();

            Assert.IsTrue(viewModel.SendingMessage);
            CollectionAssert.AreEqual(new[] { "SendingMessage" }, tracker.ChangedProperties);

            tracker.Reset();

            sendMessageCallback(new Mock <IOperationResult>().Object);

            Assert.IsFalse(viewModel.SendingMessage);
            CollectionAssert.AreEqual(new[] { "SendingMessage" }, tracker.ChangedProperties);
        }
        private void Send_Click(object sender, RoutedEventArgs e)
        {
            _currentChat.SendMessage(new ChatMessage()
            {
                Message = { new MessageItem {
                                Text = NewMessageBox.Text
                            } }, UserID = DataSource.Username, DisplayName = DataSource.Username, SendingInProgress = true
            });

            NewMessageBox.Text = "";
        }
Example #4
0
        private async void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        {
            TextFieldBox.Text = "";
            Scroll.ToBottom(MessagesListBox);
            await _vm.SendMessage(attachId);

            this.key            = 0;
            this.attachId       = 0;
            IndicatorPhoto.Fill = new SolidColorBrush(Colors.Transparent);
            IndicatorFile.Fill  = new SolidColorBrush(Colors.Transparent);
        }
        public void WhenSendingMessage_ThenInitiatesInteraction()
        {
            var serviceMock = new Mock <IChatService>();
            var viewModel   = new ChatViewModel(serviceMock.Object);

            bool interactionRaised = false;

            viewModel.SendMessageRequest.Raised += (s, e) => interactionRaised = true;

            viewModel.SendMessage();

            Assert.IsTrue(interactionRaised);
        }
Example #6
0
        async void SendMessage(object sender, EventArgs args)
        {
            var messageText = sendText.Text;

            if (messageText == null)
            {
                return;
            }

            await viewModel.SendMessage(messageText, Local.LocalUser.Id, viewModel.Companion.Id);

            sendText.Text = "";
            ItemsCollectionView.ScrollTo(viewModel.Messages.Count());
        }
        public void WhenAcceptingTheSendMessageInteraction_ThenSendsMessage()
        {
            var contact = new Contact();
            var message = "message";
            Action <IOperationResult <IEnumerable <Contact> > > getContactsCallback = null;
            Action <IOperationResult> sendMessageCallback = null;

            var serviceMock = new Mock <IChatService>(MockBehavior.Strict);

            serviceMock
            .SetupSet(svc => svc.Connected = true);
            serviceMock
            .Setup(svc => svc.GetContacts(It.IsAny <Action <IOperationResult <IEnumerable <Contact> > > >()))
            .Callback <Action <IOperationResult <IEnumerable <Contact> > > >(cb => getContactsCallback = cb);
            serviceMock
            .Setup(svc => svc.SendMessage(contact, message, It.IsAny <Action <IOperationResult> >()))
            .Callback <Contact, string, Action <IOperationResult> >((c, m, cb) => sendMessageCallback = cb);


            var getContactsOperationMock = new Mock <IOperationResult <IEnumerable <Contact> > >();

            getContactsOperationMock.SetupGet(or => or.Result).Returns(new[] { contact });

            var viewModel = new ChatViewModel(serviceMock.Object);

            InteractionRequestedEventArgs args = null;

            viewModel.SendMessageRequest.Raised += (s, e) => args = e;

            getContactsCallback(getContactsOperationMock.Object);

            viewModel.ContactsView.MoveCurrentTo(contact);

            viewModel.SendMessage();

            Assert.IsNotNull(args);

            var sendMessage = args.Context as SendMessageViewModel;

            sendMessage.Result  = true;
            sendMessage.Message = message;

            args.Callback();

            serviceMock.VerifyAll();
        }
Example #8
0
 private async void SendMessage_Click(object sender, RoutedEventArgs e)
 {
     await model.SendMessage(MessageBox.Text);
 }