Esempio n. 1
0
        public async Task CreateCampaignManagerInvite()
        {
            var handler = new CreateCampaignManagerInviteCommandHandler(Context);
            var invite  = new CampaignManagerInviteViewModel
            {
                CustomMessage       = "message",
                CampaignId          = 1,
                InviteeEmailAddress = "*****@*****.**",
            };

            var inviteCommand = new CreateCampaignManagerInviteCommand
            {
                Invite = invite,
                UserId = "userId"
            };

            handler.DateTimeUtcNow = () => new DateTime(2016, 5, 29);

            await handler.Handle(inviteCommand);

            Context.EventManagerInvites.Count().ShouldBe(0);
            Context.CampaignManagerInvites.Count().ShouldBe(1);
            Context.CampaignManagerInvites.SingleOrDefault().AcceptedDateTimeUtc.ShouldBe(null);
            Context.CampaignManagerInvites.SingleOrDefault().CustomMessage.ShouldBe("message");
            Context.CampaignManagerInvites.SingleOrDefault().CampaignId.ShouldBe(1);
            Context.CampaignManagerInvites.SingleOrDefault().InviteeEmailAddress.ShouldBe("*****@*****.**");
            Context.CampaignManagerInvites.SingleOrDefault().RejectedDateTimeUtc.ShouldBe(null);
            Context.CampaignManagerInvites.SingleOrDefault().RevokedDateTimeUtc.ShouldBe(null);
            Context.CampaignManagerInvites.SingleOrDefault().SenderUserId.ShouldBe("userId");
            Context.CampaignManagerInvites.SingleOrDefault().SentDateTimeUtc.ShouldBe(new DateTime(2016, 5, 29));
        }
Esempio n. 2
0
        public void ThrowArgumentException_WhenCampaignIdIsNotValid()
        {
            var handler = new CreateCampaignManagerInviteCommandHandler(Context);
            var invite  = new InviteViewModel
            {
                CampaignId = 10,
            };

            var inviteCommand = new CreateCampaignManagerInviteCommand
            {
                Invite = invite,
                UserId = "userId"
            };

            Should.Throw <ArgumentException>(async() => await handler.Handle(inviteCommand));
        }
Esempio n. 3
0
        public async Task ShouldSendCampaignManagerInviteEmail()
        {
            // Arrange
            var mockMediator = new Mock <IMediator>();
            var urlHelper    = new Mock <IUrlHelper>();

            urlHelper.Setup(x => x.Link("CampaignManagerInviteAcceptRoute", It.IsAny <object>())).Returns("http://accept.com/");
            urlHelper.Setup(x => x.Link("CampaignManagerInviteDeclineRoute", It.IsAny <object>())).Returns("http://decline.com/");

            var handler = new CreateCampaignManagerInviteCommandHandler(Context, mockMediator.Object, urlHelper.Object);
            var invite  = new CampaignManagerInviteViewModel
            {
                CustomMessage       = "test message",
                CampaignId          = 1,
                InviteeEmailAddress = "*****@*****.**",
                CampaignName        = "Test Campaign",
            };

            var inviteCommand = new CreateCampaignManagerInviteCommand
            {
                Invite              = invite,
                UserId              = "userId",
                SenderName          = "John Smith",
                RegisterUrl         = "http://register.com/",
                IsInviteeRegistered = true
            };

            handler.DateTimeUtcNow = () => new DateTime(2016, 5, 29);

            // Act
            await handler.Handle(inviteCommand);

            // Assert
            mockMediator.Verify(x => x.PublishAsync(It.Is <CampaignManagerInvited>(i =>
                                                                                   i.InviteeEmail == invite.InviteeEmailAddress &&
                                                                                   i.CampaignName == invite.CampaignName &&
                                                                                   i.SenderName == "John Smith" &&
                                                                                   i.AcceptUrl == "http://accept.com/" &&
                                                                                   i.DeclineUrl == "http://decline.com/" &&
                                                                                   i.RegisterUrl == "http://register.com/" &&
                                                                                   i.IsInviteeRegistered &&
                                                                                   i.Message == "test message"
                                                                                   )), Times.Once);
        }