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