Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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");
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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.");
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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.");
        }