public async Task Should_ReturnOneMember_When_UserCreatesLibrary()
        {
            // Create a test user
            var userRequest = new CreateUserWithoutAuth("Alice");
            var user        = await _fixture.SendAsync(userRequest);

            const string title       = "My Fantastic Library";
            const string description = "A suitable description.";

            // User creates library
            var createLibraryRequest = new CreateLibrary(user.Id, title, description);
            await _fixture.SendAsync(createLibraryRequest);

            // Get all libraries created by that user
            var librariesRequest = new GetLibrariesCreatedByUserId(user.Id);
            var libraries        = await _fixture.SendAsync(librariesRequest);

            // Check that only one library was returned
            Assert.Single(libraries);

            // Check that the created library only has one member, the creator
            var libraryId = libraries.ToList().ElementAt(0).Id;

            //Return that member
            var getMembersRequest = new GetMembersOfLibrary(libraryId);
            var members           = await _fixture.SendAsync(getMembersRequest);

            Assert.Single(members);

            //Check that member by id
            var memberUserId = members.ToList().ElementAt(0).UserId;

            Assert.Equal(user.Id, memberUserId);
        }
Example #2
0
        public async Task It_Updates_A_DisplayName()
        {
            const string title       = "My Fantastic Library";
            const string description = "A suitable description.";

            // Create a test user (don't think this is needed here)
            var userRequest = new CreateUserWithoutAuth("Alice");
            var user        = await _fixture.SendAsync(userRequest);

            // Create a library with that user
            var request = new CreateLibrary(user.Id, title, description);
            await _fixture.SendAsync(request);

            // Get library created by that user
            var librariesRequest = new GetLibrariesForUser(user.Id);
            var library          = (await _fixture.SendAsync(librariesRequest)).ToArray();
            var libraryId        = library.Single().Id;

            //Return that member
            var getMemberRequest = new GetMembersOfLibrary(libraryId);
            var member           = await _fixture.SendAsync(getMemberRequest);

            //Update name from Alice to Bob
            var updateDisplayNameRequest = new UpdateDisplayName(member.Single().Id, "Bob");
            await _fixture.SendAsync(updateDisplayNameRequest);

            //Return same member with changed display name
            var getMemberRequest1 = new GetMembersOfLibrary(member.Single().Id);
            var member1           = await _fixture.SendAsync(getMemberRequest1);

            //Bob should be new name
            Assert.Equal("Bob", member1.Single().DisplayName);
        }
Example #3
0
        public async Task ItUpdatesRoleOfMember()
        {
            // Create a test user
            var userRequest = new CreateUserWithoutAuth("Alice");
            var user        = await _fixture.SendAsync(userRequest);

            const string title          = "My Fantastic Library";
            const string roleTitle      = "Student";
            const string newDisplayName = "Some guy";
            const string description    = "A suitable description.";

            // User creates library
            var createLibraryRequest = new CreateLibrary(user.Id, title, description);
            await _fixture.SendAsync(createLibraryRequest);

            // Get libraries just created by user
            var getLibrariesRequest = new GetLibrariesForUser(user.Id);
            var libraries           = await _fixture.SendAsync(getLibrariesRequest);

            // Make sure there's only one library
            var libraryDtos = libraries.ToList();

            Assert.Single(libraryDtos);

            // Get id of the single library
            var libraryId = libraryDtos.ToList().ElementAt(0).Id;

            // Return member
            var getMembersRequest = new GetMembersOfLibrary(libraryId);
            var members           = await _fixture.SendAsync(getMembersRequest);

            // Get that member's id
            var memberUserId = members.ToList().ElementAt(0).Id;

            // User creates role for that library
            var createRoleRequest = new CreateRole(roleTitle, libraryId);
            await _fixture.SendAsync(createRoleRequest);

            // Retrieve roles
            var getRoleRequest = new GetRolesForLibrary(libraryId);
            var role           = await _fixture.SendAsync(getRoleRequest);

            // Make sure 1 role returned
            //var roleDtos = role.ToList();

            // RoleId of role after default (our created role)
            var roleId = role.ToList().ElementAt(1).Id;

            // Update that role
            var newRoleRequest = new UpdateRoleOfMember(memberUserId, roleId, newDisplayName);
            await _fixture.SendAsync(newRoleRequest);

            // Retrieve that member
            var getMemberRequest = new GetRoleForMember(memberUserId);
            var updatedRole      = await _fixture.SendAsync(getMemberRequest);

            // Make sure the role was updated
            Assert.Equal(roleId, updatedRole.Id);
        }
Example #4
0
        public async Task ShouldGetRolesForMembers()
        {
            // Create a test user
            var userRequest = new CreateUserWithoutAuth("Alice");
            var user        = await _fixture.SendAsync(userRequest);

            const string title       = "My Fantastic Library";
            const string description = "A suitable description.";

            // User creates library
            var createLibraryRequest = new CreateLibrary(user.Id, title, description);
            await _fixture.SendAsync(createLibraryRequest);

            // Get libraries just created by user
            var getLibrariesRequest = new GetLibrariesForUser(user.Id);
            var libraries           = await _fixture.SendAsync(getLibrariesRequest);

            // Make sure there's only one library
            var libraryDtos = libraries.ToList();

            Assert.Single(libraryDtos);

            // Get id of the single library
            var libraryId = libraryDtos.ToList().ElementAt(0).Id;

            // Return member
            var getMembersRequest = new GetMembersOfLibrary(libraryId);
            var members           = await _fixture.SendAsync(getMembersRequest);

            // Get that member's id
            var memberId = members.ToList().ElementAt(0).Id;

            // Put membership Id's into list
            var memberIds = new List <int>();

            memberIds.Add(memberId);

            // Retrieve roles from list
            var getRolesForMembersRequest = new GetRolesForMembers(memberIds);
            var memberRolesReturn         = await _fixture.SendAsync(getRolesForMembersRequest);

            // Check to make sure roles returned from list
            Assert.Contains("Instructor", memberRolesReturn.Single().Value.Title);
        }
Example #5
0
        public async Task ItDeletesLibraryMember()
        {
            const string title       = "My Fantastic Library";
            const string description = "A suitable description.";

            // Create a test user
            var userRequest = new CreateUserWithoutAuth("Alice");
            var user        = await _fixture.SendAsync(userRequest);

            // Create a library with that user
            var request = new CreateLibrary(user.Id, title, description);
            await _fixture.SendAsync(request);

            // Get all libraries created by that user
            var librariesRequest = new GetLibrariesCreatedByUserId(user.Id);
            var libraries        = (await _fixture.SendAsync(librariesRequest)).ToArray();

            //get single library from that user
            var library = libraries.Single();

            //get id for user
            var membershipRequest = new GetMembersOfLibrary(library.Id);
            var memberShip        = await _fixture.SendAsync(membershipRequest);

            //delete user from library
            var deleteMemberRequest = new DeleteMemberOfLibrary(memberShip.Single().Id);
            await _fixture.SendAsync(deleteMemberRequest);

            //get members of library (should be 0)
            var memberRequest  = new GetMembersOfLibrary(library.Id);
            var currentMembers = await _fixture.SendAsync(memberRequest);

            var member = currentMembers.Count();

            Assert.Equal(0, member);
        }