public virtual ActionResult InvitePlayer(int id, ApplicationUser currentUser) { PlayerDetails playerDetails; try { //TODO this method is overkill for just getting the player name playerDetails = playerRetriever.GetPlayerDetails(id, 0); } catch (KeyNotFoundException) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } var emailSubject = string.Format(EMAIL_SUBJECT_PLAYER_INVITATION, currentUser.UserName); var playerInvitationViewModel = new PlayerInvitationViewModel { PlayerId = playerDetails.Id, PlayerName = playerDetails.Name, EmailSubject = emailSubject, EmailBody = EMAIL_BODY_PLAYER_INVITATION }; return(View(MVC.Player.Views.InvitePlayer, playerInvitationViewModel)); }
public void ItSendsThePlayerInvitation() { PlayerInvitationViewModel playerInvitationViewModel = new PlayerInvitationViewModel { EmailAddress = "email address", EmailBody = "email body", EmailSubject = "email subject", PlayerId = 1 }; autoMocker.ClassUnderTest.Url.Expect(mock => mock.Action(MVC.GamingGroup.ActionNames.Index, MVC.GamingGroup.Name)) .Return("some url"); autoMocker.ClassUnderTest.InvitePlayer(playerInvitationViewModel, currentUser); var args = autoMocker.Get <IPlayerInviter>() .GetArgumentsForCallsMadeOn(mock => mock.InvitePlayer(Arg <PlayerInvitation> .Is.Anything, Arg <ApplicationUser> .Is.Anything)); var actualInvite = args.AssertFirstCallIsType <PlayerInvitation>(); actualInvite.GamingGroupId.ShouldBe(currentUser.CurrentGamingGroupId.Value); actualInvite.EmailSubject.ShouldBe(playerInvitationViewModel.EmailSubject); actualInvite.InvitedPlayerEmail.ShouldBe(playerInvitationViewModel.EmailAddress); actualInvite.InvitedPlayerId.ShouldBe(playerInvitationViewModel.PlayerId); var actualApplicationUser = args.AssertFirstCallIsType <ApplicationUser>(1); actualApplicationUser.ShouldBeSameAs(currentUser); }
public virtual ActionResult InvitePlayer(PlayerInvitationViewModel playerInvitationViewModel, ApplicationUser currentUser) { PlayerInvitation playerInvitation = new PlayerInvitation { InvitedPlayerId = playerInvitationViewModel.PlayerId, InvitedPlayerEmail = playerInvitationViewModel.EmailAddress.Trim(), EmailSubject = playerInvitationViewModel.EmailSubject, CustomEmailMessage = playerInvitationViewModel.EmailBody }; playerInviter.InvitePlayer(playerInvitation, currentUser); return(new RedirectResult(Url.Action(MVC.GamingGroup.ActionNames.Index, MVC.GamingGroup.Name))); }
public virtual ActionResult InvitePlayer(PlayerInvitationViewModel playerInvitationViewModel, ApplicationUser currentUser) { var playerInvitation = new PlayerInvitation { InvitedPlayerId = playerInvitationViewModel.PlayerId, InvitedPlayerEmail = playerInvitationViewModel.EmailAddress.Trim(), EmailSubject = playerInvitationViewModel.EmailSubject, CustomEmailMessage = playerInvitationViewModel.EmailBody }; playerInviter.InvitePlayer(playerInvitation, currentUser); SetToastMessage(TempMessageKeys.TEMP_MESSAGE_KEY_PLAYER_INVITED, $"Mail to invite {playerInvitationViewModel.PlayerName} sended succesfully"); return(new RedirectResult(Url.Action(MVC.GamingGroup.ActionNames.Index, MVC.GamingGroup.Name))); }
public void ItSendsThePlayerInvitation() { PlayerInvitationViewModel playerInvitationViewModel = new PlayerInvitationViewModel { EmailAddress = "email address", EmailBody = "email body", EmailSubject = "email subject", PlayerId = 1 }; ApplicationUser applicationUser = new ApplicationUser(); autoMocker.ClassUnderTest.Url.Expect(mock => mock.Action(MVC.GamingGroup.ActionNames.Index, MVC.GamingGroup.Name)) .Return("some url"); autoMocker.ClassUnderTest.InvitePlayer(playerInvitationViewModel, applicationUser); autoMocker.Get <IPlayerInviter>().AssertWasCalled(mock => mock.InvitePlayer(Arg <PlayerInvitation> .Matches( invite => invite.CustomEmailMessage == playerInvitationViewModel.EmailBody && invite.EmailSubject == playerInvitationViewModel.EmailSubject && invite.InvitedPlayerEmail == playerInvitationViewModel.EmailAddress && invite.InvitedPlayerId == playerInvitationViewModel.PlayerId), Arg <ApplicationUser> .Is.Same(applicationUser))); }