Exemplo n.º 1
0
        public async Task ShouldSendEmailWhenAccepting()
        {
            // Arrange
            var    mockMediator  = new Mock <IMediator>();
            var    mockUrlHelper = new Mock <IUrlHelper>();
            string campaignUrl   = $"http://localhost/campaigns/details/{campaignId}";

            mockUrlHelper.Setup(x => x.Link(It.IsAny <string>(), It.IsAny <object>())).Returns(campaignUrl);
            mockUrlHelper.Setup(x => x.Action(It.IsAny <UrlActionContext>())).Returns(campaignUrl);
            var handler = new AcceptCampaignManagerInviteCommandHandler(Context, mockMediator.Object, mockUrlHelper.Object);

            handler.DateTimeUtcNow = () => { return(AcceptedTime); };

            // Act
            await handler.Handle(new AcceptCampaignManagerInviteCommand
            {
                CampaignManagerInviteId = inviteId
            });

            // Assert
            mockMediator.Verify(x => x.PublishAsync(It.Is <CampaignManagerInviteAccepted>(c =>
                                                                                          c.CampaignName == campaignName &&
                                                                                          c.CampaignUrl == campaignUrl &&
                                                                                          c.InviteeEmail == inviteeEmail &&
                                                                                          c.SenderEmail == senderEmail
                                                                                          )), Times.Once);
        }
        public async Task ShouldSetIsAcceptedToTrue()
        {
            // Arrange
            var handler = new AcceptCampaignManagerInviteCommandHandler(Context);

            handler.DateTimeUtcNow = () => { return(AcceptedTime); };

            // Act
            await handler.Handle(new AcceptCampaignManagerInviteCommand
            {
                CampaignManagerInviteId = inviteId
            });

            // Assert
            var invite = Context.CampaignManagerInvites.SingleOrDefault(i => i.Id == inviteId);

            invite.IsAccepted.ShouldBe(true);
            invite.AcceptedDateTimeUtc.ShouldBe(AcceptedTime);
        }