public void MessageNeedsTextAndRecipient() { // Arrange var vm = new ComposeMessageViewModel { Recipient = string.Empty }; // Act bool noData = vm.OkCommand.CanExecute(null); vm.Recipient = "test"; vm.Text = string.Empty; bool noText = vm.OkCommand.CanExecute(null); vm.Recipient = string.Empty; vm.Text = "test"; bool noRecipient = vm.OkCommand.CanExecute(null); vm.Recipient = "test"; bool allData = vm.OkCommand.CanExecute(null); // Assert Assert.IsFalse(noData); Assert.IsFalse(noText); Assert.IsFalse(noRecipient); Assert.IsTrue(allData); }
public ActionResult Compose(string to = null, string subject = null, string message = null) { ViewBag.ManageNavigationKey = "compose"; ModelState.Clear(); // prevent query string from overriding our model properties var model = new ComposeMessageViewModel(); model.To = to; model.Subject = subject; model.Message = message; model.IsModerator = _moderationDao.GetSubsModeratoredByUser(_userContext.CurrentUser.Id).Count > 0; return(View(model)); }
public ActionResult ComposeMessage(ComposeMessageViewModel viewModel) { var loggedInUserId = User.Identity.GetUserId <int>(); var loggedInUser = Context.Users.FirstOrDefault(x => x.Id == loggedInUserId); var theirUser = Context.Users.FirstOrDefault(x => x.Id == viewModel.ToUserId); var privateMessage = new PrivateMessage { Subject = viewModel.Subject, Content = viewModel.Content, Sender = loggedInUser, Receiver = theirUser }; Context.PrivateMessages.Add(privateMessage); Context.SaveChanges(); return(RedirectToAction("Conversation", new { theirUserId = theirUser.Id })); }
public void NotifyPropertyChangedIsImplementedCorrectly() { // Arrange var resolver = new Mock <ITypeResolver>(); var context = new Mock <IContextEntry>(); resolver.Setup(r => r.Resolve(typeof(MessageViewModel))) .Returns(new MessageViewModel(DummyGenerator.CreateDummyMessage(), context.Object, null, null)); var vm = new ComposeMessageViewModel(); var tester = new PropertyChangedTester(vm, false, resolver.Object); // Act tester.Test(); // Assert tester.Verify(); }
public ActionResult Compose(ComposeMessageViewModel model) { ViewBag.ManageNavigationKey = "compose"; model.IsModerator = _moderationDao.GetSubsModeratoredByUser(_userContext.CurrentUser.Id).Count > 0; if (!ModelState.IsValid) { return(View(model)); } SendMessageResponse response = null; try { response = _commandBus.Send <SendMessage, SendMessageResponse>(new SendMessage { To = model.To, Subject = model.Subject, Body = model.Message, Author = _userContext.CurrentUser.Id }); } catch (Exception ex) { _logger.Error("An error occured sending a message.", ex); AddErrorMessage("An unknown error occured."); } if (string.IsNullOrEmpty(response.Error)) { AddSuccessMessage("Your message has been sent."); } else { AddErrorMessage(response.Error); } return(View(model)); }
public void EnteringRecipientQueriesFriendship() { // Arrange var context = new Mock <IContextEntry>(); context.SetupGet(c => c.UserId).Returns(123); context.Setup(c => c.Twitter.Friendships.GetFriendshipWith(123, "the_username")).Returns(Task.FromResult(new LinqToTwitter.Friendship())); var contextList = new Mock <ITwitterContextList>(); contextList.SetupGet(c => c.Contexts).Returns(new[] { context.Object }); var vm = new ComposeMessageViewModel { ContextList = contextList.Object }; var waitHandle = new ManualResetEventSlim(false); vm.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(ComposeMessageViewModel.IsCheckingRelationship) && vm.IsCheckingRelationship == false) { waitHandle.Set(); } }; // Act vm.Recipient = "the_username"; bool set = waitHandle.Wait(1000); // Assert Assert.IsTrue(set); context.Verify(c => c.Twitter.Friendships.GetFriendshipWith(123, "the_username"), Times.Once()); }
public void SendCommandCallsTwitterApi() { // Arrange var context = new Mock <IContextEntry>(); context.Setup(c => c.Twitter.Messages.SendMessage("the_user", "the_message")).Returns(Task.FromResult(new LinqToTwitter.DirectMessage())); var contextList = new Mock <ITwitterContextList>(); contextList.SetupGet(c => c.Contexts).Returns(new[] { context.Object }); var vm = new ComposeMessageViewModel { ContextList = contextList.Object }; var waitHandle = new ManualResetEventSlim(false); vm.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(ComposeMessageViewModel.IsSending) && vm.IsSending == false) { waitHandle.Set(); } }; // Act vm.Recipient = "the_user"; vm.Text = "the_message"; vm.OkCommand.Execute(null); bool set = waitHandle.Wait(1000); // Assert Assert.IsTrue(set); context.Verify(c => c.Twitter.Messages.SendMessage("the_user", "the_message"), Times.Once()); }