Пример #1
0
        public async Task ExecuteShouldReturnSuccess()
        {
            //Arrange
            MailingGroupContext mailingGroupContext = ContextBuilder.BuildClean();
            AppUser             user = new AppUser
            {
                UserName = "******",
                Email    = "*****@*****.**"
            };

            AppUser otherUser = new AppUser
            {
                UserName = "******",
                Email    = "*****@*****.**"
            };

            mailingGroupContext.Add(user);
            mailingGroupContext.Add(otherUser);
            Model.Entity.MailingGroup oldGroup = new Model.Entity.MailingGroup
            {
                Name = "Old group",
                User = user
            };
            Model.Entity.MailingGroup groupOtherUser = new Model.Entity.MailingGroup
            {
                Name = "New group",
                User = otherUser
            };
            mailingGroupContext.Add(oldGroup);
            mailingGroupContext.Add(groupOtherUser);
            mailingGroupContext.SaveChanges();

            Command cmd = new Command
            {
                UserId = user.Id,
                Id     = oldGroup.Id,
                Name   = "New group"
            };
            //Act
            ApiResult <MailingGroupDto> result = await new Handler(mailingGroupContext).Handle(cmd, CancellationToken.None);

            //Assert
            result.IsSuccess.Should().BeTrue();
            result.Message.Should().BeNullOrEmpty();

            mailingGroupContext.MailingGroups.Should().HaveCount(2);
            Model.Entity.MailingGroup mailingGroup = mailingGroupContext.MailingGroups.First();
            mailingGroup.Name.Should().Be(cmd.Name);
            mailingGroup.UserId.Should().Be(cmd.UserId);
            mailingGroup.Id.Should().Be(1);

            result.Data.Should().NotBeNull();
            result.Data.Id.Should().Be(mailingGroup.Id);
        }
Пример #2
0
        public async Task ExecuteShouldReturnFailedWhenGroupIdIsWrong()
        {
            //Arrange
            MailingGroupContext context   = ContextBuilder.BuildClean();
            AppUser             firstUser = new AppUser()
            {
                UserName = "******",
                Email    = "*****@*****.**"
            };
            AppUser secondUser = new AppUser()
            {
                UserName = "******",
                Email    = "*****@*****.**"
            };

            context.Add(firstUser);
            context.Add(secondUser);

            List <MailingGroup> mailingGroups = new List <MailingGroup>
            {
                new MailingGroup()
                {
                    Name = "first",
                    User = firstUser
                },
                new MailingGroup()
                {
                    Name = "second",
                    User = secondUser
                }
            };

            context.AddRange(mailingGroups);
            context.SaveChanges();
            Query query = new Query()
            {
                Id     = 22,
                UserId = firstUser.Id
            };
            //Act
            ApiResult <MailingGroupDto> result = await new Handler(context).Handle(query, CancellationToken.None);

            //Assert
            result.IsSuccess.Should().BeFalse();
            result.Message.Should().Be("Mail group not exists");
            result.Data.Should().BeNull();
            result.StatusCode.Should().Be(404);
        }
Пример #3
0
        public async Task ExecuteShouldReturnFailedResultNameIsRequired()
        {
            //Arrange
            MailingGroupContext mailingGroupContext = ContextBuilder.BuildClean();
            AppUser             user = new AppUser
            {
                UserName = "******",
                Email    = "*****@*****.**"
            };

            mailingGroupContext.Add(user);
            mailingGroupContext.SaveChanges();

            Command cmd = new Command
            {
                UserId = user.Id,
                Name   = string.Empty
            };
            //Act
            ApiResult <MailingGroupDto> result = await new Handler(mailingGroupContext).Handle(cmd, CancellationToken.None);

            //Assert
            result.IsSuccess.Should().BeFalse();
            result.Message.Should().Be("Name is required");
            result.Data.Should().BeNull();
        }
Пример #4
0
        public async Task ExecuteShouldReturMailingGroupDetailWithEmails()
        {
            //Arrange
            MailingGroupContext context   = ContextBuilder.BuildClean();
            AppUser             firstUser = new AppUser()
            {
                UserName = "******",
                Email    = "*****@*****.**"
            };
            AppUser secondUser = new AppUser()
            {
                UserName = "******",
                Email    = "*****@*****.**"
            };

            context.Add(firstUser);
            context.Add(secondUser);

            MailingGroup group = new MailingGroup()
            {
                Name = "first",
                User = firstUser,
            };

            group.Emails = GenerateEmails(20, group).ToList();
            context.Add(group);
            context.SaveChanges();
            Query query = new Query()
            {
                Id     = 1,
                UserId = firstUser.Id
            };
            //Act
            ApiResult <MailingGroupDto> result = await new Handler(context).Handle(query, CancellationToken.None);

            //Assert
            result.IsSuccess.Should().BeTrue();
            result.Message.Should().BeNullOrEmpty();
            MailingGroupDto mailingGroupDto = result.Data;

            mailingGroupDto.Should().NotBeNull();
            mailingGroupDto.Emails.Should().NotBeEmpty();
            result.StatusCode.Should().Be(200);
        }
Пример #5
0
        public async Task ExecuteShouldReturnNameIsTaken()
        {
            //Arrange
            MailingGroupContext mailingGroupContext = ContextBuilder.BuildClean();
            AppUser             user = new AppUser
            {
                UserName = "******",
                Email    = "*****@*****.**"
            };

            mailingGroupContext.Add(user);
            Model.Entity.MailingGroup oldGroup = new Model.Entity.MailingGroup
            {
                Name = "Old group",
                User = user
            };
            Model.Entity.MailingGroup otherGroup = new Model.Entity.MailingGroup
            {
                Name = "New group",
                User = user
            };
            mailingGroupContext.Add(oldGroup);
            mailingGroupContext.SaveChanges();
            mailingGroupContext.Add(otherGroup);
            mailingGroupContext.SaveChanges();

            Command cmd = new Command
            {
                UserId = user.Id,
                Id     = oldGroup.Id,
                Name   = "New group"
            };
            //Act
            ApiResult <MailingGroupDto> result = await new Handler(mailingGroupContext).Handle(cmd, CancellationToken.None);

            //Assert
            result.IsSuccess.Should().BeFalse();
            result.Message.Should().Be("This mailing group name is already exists");
            result.StatusCode.Should().Be(401);
            result.Data.Should().BeNull();
        }
Пример #6
0
 public TBuilder Save()
 {
     Context.Add(State);
     Context.SaveChanges();
     return((TBuilder)this);
 }