public async Task GetGroupsAsync_WhenUserExists_ShouldReturnUserGroups() { //Arrange var sutBuilder = new GroupServiceSutBuilder(); var group = sutBuilder.CreateGroupWithUsers("Test", 6); var user = sutBuilder.CreateUser(group: group, name: "Test", email: "*****@*****.**"); var groupService = sutBuilder.CreateSut(); IList <Group> groupList = new List <Group> { group }; A.CallTo(() => sutBuilder.GroupRepository.GetByIdAsync(group.Id)) .Returns(group); A.CallTo(() => sutBuilder.UserRepository.GetByIdAsync(user.Id)) .Returns(user); A.CallTo(() => sutBuilder.GroupRepository.GetUserGroups(user.Id)) .Returns(groupList); //Act IList <Group> resultGroup = await groupService.GetGroupsAsync(user.Id); //Assert resultGroup.ShouldBe(groupList); }
public async Task AddGroupAsync_WhenGroupNameIsNotNull_ShouldReturnGroup() { //Arrange var sutBuilder = new GroupServiceSutBuilder(); var groupService = sutBuilder.CreateSut(); string groupName = "Test Group 1"; var groupToCreate = new CreateNewGroup() { Name = groupName, }; var group = new Group() { Id = Guid.NewGuid(), Name = groupName, }; A.CallTo(() => sutBuilder.GroupRepository.AddAsync(A <Group> .That.Matches(passedGroup => passedGroup.Name == groupToCreate.Name))) .Returns(group); //Act var resultGroup = await groupService.AddGroupAsync(groupToCreate); //Assert resultGroup.ShouldBe(group); }
public void AddGroupAsync_WhenGroupNameIsNull_ShouldThrow() { //Arrange var sutBuilder = new GroupServiceSutBuilder(); var groupService = sutBuilder.CreateSut(); var groupToCreate = new CreateNewGroup(); //Act & Assert var exception = Assert.ThrowsAsync <ValidationException>(async() => await groupService.AddGroupAsync(groupToCreate)); }
public void GetGroupAsync_WhenGroupDoesNotExist_ShouldThrow() { //Arrange var sutBuilder = new GroupServiceSutBuilder(); var group = sutBuilder.CreateGroupWithUsers("Test", 6); var groupService = sutBuilder.CreateSut(); A.CallTo(() => sutBuilder.GroupRepository.GetByIdAsync(group.Id)) .Returns <Group?>(null); //Act & Assert var exception = Assert.ThrowsAsync <NotFoundException>(async() => await groupService.GetGroupAsync(group.Id)); exception.Message.ShouldBe($"Group with id ({group.Id}) does not exist"); }
public async Task GetGroupAsync_WhenGroupExists_ShouldReturnGroup() { //Arrange var sutBuilder = new GroupServiceSutBuilder(); var group = sutBuilder.CreateGroupWithUsers("Test", 6); var groupService = sutBuilder.CreateSut(); A.CallTo(() => sutBuilder.GroupRepository.GetByIdAsync(group.Id)) .Returns(group); //Act var resultGroup = await groupService.GetGroupAsync(group.Id); //Assert resultGroup.ShouldBe(group); }
public void AddUserToGroupAsync_WhenUserDoesNotExist_ShouldThrow() { //Arrange var sutBuilder = new GroupServiceSutBuilder(); var group = sutBuilder.CreateGroupWithUsers("Test", 1); var user = sutBuilder.CreateUser(name: "Test", email: "*****@*****.**"); var groupService = sutBuilder.CreateSut(); A.CallTo(() => sutBuilder.GroupRepository.GetByIdAsync(Guid.NewGuid())) .Returns <Group?>(group); A.CallTo(() => sutBuilder.UserRepository.GetByIdAsync(user.Id)) .Returns <User?>(null); //Act & Assert var exception = Assert.ThrowsAsync <NotFoundException>(async() => await groupService.AddUserToGroupAsync(group.Id, user.Id)); exception.Message.ShouldBe($"User with id {user.Id} does not exist."); }
public async Task AddUserToGroupAsync_WhenUserAndGroupExists_ShouldReturnGroup() { //Arrange var sutBuilder = new GroupServiceSutBuilder(); var group = sutBuilder.CreateGroupWithUsers("Test", 1); var user = sutBuilder.CreateUser(name: "Test", email: "*****@*****.**"); var groupService = sutBuilder.CreateSut(); A.CallTo(() => sutBuilder.GroupRepository.GetByIdAsync(group.Id)) .Returns(group); A.CallTo(() => sutBuilder.UserRepository.GetByIdAsync(user.Id)) .Returns(user); //Act var resultGroup = await groupService.AddUserToGroupAsync(group.Id, user.Id); //Assert resultGroup.ShouldBe(group); }
public async Task GetGroupsAsync_WhenUserIdIsNotPassed_ShouldReturnGroups() { //Arrange var sutBuilder = new GroupServiceSutBuilder(); var group = sutBuilder.CreateGroupWithUsers("Test", 6); var user = sutBuilder.CreateUser(name: "Test", email: "*****@*****.**"); var groupService = sutBuilder.CreateSut(); IList <Group> groupList = new List <Group> { group }; A.CallTo(() => sutBuilder.GroupRepository.GetAllAsync(null)) .Returns(groupList); //Act var resultGroup = await groupService.GetGroupsAsync(null); //Assert resultGroup.ShouldBe(groupList); }
public void GetGroupsAsync_WhenUserDoesNotExist_ShouldThrow() { //Arrange var sutBuilder = new GroupServiceSutBuilder(); var group = sutBuilder.CreateGroupWithUsers("Test", 6); var groupService = sutBuilder.CreateSut(); IList <Group> groupList = new List <Group> { group }; var userid = Guid.NewGuid(); A.CallTo(() => sutBuilder.GroupRepository.GetByIdAsync(group.Id)) .Returns(group); A.CallTo(() => sutBuilder.UserRepository.GetByIdAsync(userid)) .Returns <User?>(null); //Act & Assert var exception = Assert.ThrowsAsync <NotFoundException>(async() => await groupService.GetGroupsAsync(userid)); exception.Message.ShouldBe($"User with id {userid} does not exist."); }