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); }
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)); }); }
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)); }); }
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); }); }
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); }