示例#1
0
        public void Setup()
        {
            repository = Substitute.For <IDbRepository>();
            var auditTrailWriter = Substitute.For <IAuditTrailWriter>();

            sut = new CreateGroupCommandHandler(repository, auditTrailWriter);
        }
示例#2
0
        public void CreateGroupWithoutMembersTest()
        {
            var command = new CreateGroupCommand()
            {
                Admin = 1,
            };
            var handler = new CreateGroupCommandHandler(Context);

            Assert.ThrowsAny <Exception>(() => handler.Handle(command, CancellationToken.None).Result);
        }
        public async Task ThrowDuplicateException_WhenGroupNameExists()
        {
            var request = new CreateGroupCommand
            {
                Name                = "Group 1",
                SpecialityId        = 1,
                StudentsCount       = 10,
                EducationalDegreeId = 1,
                Year                = 1
            };

            var handler = new CreateGroupCommandHandler(Context);

            var exception = Assert.ThrowsAsync <DuplicateException>(async() => await handler.Handle(request, CancellationToken.None));

            Assert.AreEqual(exception.Message, ExceptionMessagesBuilderHelper.GetDuplicateExceptionMessage(nameof(Group), "Name", request.Name));
        }
        public async Task CreateGroup()
        {
            var request = new CreateGroupCommand
            {
                Name                = "Group 3",
                SpecialityId        = 1,
                StudentsCount       = 10,
                EducationalDegreeId = 1,
                Year                = 1
            };

            var handler = new CreateGroupCommandHandler(Context);

            var result = await handler.Handle(request, CancellationToken.None);

            Assert.IsTrue(Context.Groups.Where(x => x.Id == result).Count() == 1);
        }
示例#5
0
        public async Task Create_NameAlreadyUsed_BadRequestException()
        {
            await ExecuteWithDb((db) =>
            {
                var handler = new CreateGroupCommandHandler(
                    MockMediator.Object,
                    db,
                    Mapper,
                    MockAuthorizationService.Object);

                var existingGroup = SeedHelper.GetRandomGroup(db);
                var dto           = SeedHelper.CreateValidNewGroupDto(db, Mapper, existingGroup.Name);

                return(handler.Handle(new CreateGroupCommand()
                {
                    Group = dto
                }, default));
            });
        }
示例#6
0
        public async Task Create_MissingName_BadRequestException(string name)
        {
            await ExecuteWithDb((db) =>
            {
                var handler = new CreateGroupCommandHandler(
                    MockMediator.Object,
                    db,
                    Mapper,
                    MockAuthorizationService.Object);

                var dto  = SeedHelper.CreateValidNewGroupDto(db, Mapper);
                dto.Name = name;

                return(handler.Handle(new CreateGroupCommand()
                {
                    Group = dto
                }, default));
            });
        }
示例#7
0
        public async Task Create_Valid_PublishesGroupCreatedDomainEvent()
        {
            await ExecuteWithDb((db) =>
            {
                var handler = new CreateGroupCommandHandler(
                    MockMediator.Object,
                    db,
                    Mapper,
                    MockAuthorizationService.Object);

                var dto = SeedHelper.CreateValidNewGroupDto(db, Mapper);

                return(handler.Handle(new CreateGroupCommand()
                {
                    Group = dto
                }, default));
            }, (result, db) =>
            {
                MockMediator.Verify(x => x.Publish(It.IsAny <GroupCreatedDomainEvent>(), It.IsAny <CancellationToken>()), Times.Once);
            });
        }
示例#8
0
        public async void CreateValidGroupTest()
        {
            var user = new User()
            {
                Name     = "Juan",
                LastName = "Cunha",
                Id       = 1,
                Mail     = "*****@*****.**",
                Password = "******"
            };
            var user2 = new User()
            {
                Name     = "Pedro",
                LastName = "Cunha",
                Id       = 2,
                Mail     = "*****@*****.**",
                Password = "******"
            };

            Context.Users.Add(user);
            Context.Users.Add(user2);
            var command = new CreateGroupCommand()
            {
                Name        = "La pedrera",
                Admin       = 1,
                Memberships = new List <int>()
            };

            command.Memberships.Add(1);
            command.Memberships.Add(2);
            var handler = new CreateGroupCommandHandler(Context);

            GroupModel group = await handler.Handle(command, CancellationToken.None);

            Assert.Contains(Groups, g => g.Id == group.Id);
            Assert.Contains(Memberships, m => m.UserId == user.Id && m.GroupId == group.Id);
            Assert.Contains(Memberships, m => m.UserId == user2.Id && m.GroupId == group.Id);
        }
 public void Setup()
 {
     repository = Substitute.For<IDbRepository>();
     var auditTrailWriter = Substitute.For<IAuditTrailWriter>();
     sut = new CreateGroupCommandHandler(repository, auditTrailWriter);
 }