public void ShareCollection_ShareCollectionToNotExistingUser_NotFound() { //Arrange var user1 = NewGuid; AddUser(user1); var collection = AddCollection(user1, 5); //Act var sharedCollectionData = new SharedCollectionCreationData { CollectionId = collection.Id, EditRights = true, UserId = NewGuid }; IActionResult result = null; InTransaction(context => { var controller = new SharedCollectionsController(context, GetUserProviderMock(user1)); result = controller.ShareCollection(sharedCollectionData); }); //Assert result.Should().BeOfType <NotFoundResult>(); }
public void ShareCollection_ShareCollectionOfDifferentUser_Forbidden() { //Arrange var user1 = NewGuid; var user2 = NewGuid; var user3 = NewGuid; AddUser(user1); AddUser(user2); AddUser(user3); var collection = AddCollection(user1, 5); //Act var sharedCollectionData = new SharedCollectionCreationData { CollectionId = collection.Id, EditRights = true, UserId = user3 }; IActionResult result = null; InTransaction(context => { var controller = new SharedCollectionsController(context, GetUserProviderMock(user2)); result = controller.ShareCollection(sharedCollectionData); }); //Assert result.Should().BeOfType <ForbidResult>(); }
public void ShareCollection_CollectionAlreadySharedToUser_NoRecordAdded() { //Arrange var user1 = NewGuid; var user2 = NewGuid; AddUser(user1); AddUser(user2); var collection = AddCollection(user1, 5); //Act var sharedCollectionData = new SharedCollectionCreationData { CollectionId = collection.Id, EditRights = true, UserId = user2 }; InTransaction(context => { var controller = new SharedCollectionsController(context, GetUserProviderMock(user1)); controller.ShareCollection(sharedCollectionData); }); InTransaction(context => { var controller = new SharedCollectionsController(context, GetUserProviderMock(user1)); controller.ShareCollection(sharedCollectionData); }); //Assert InTransaction(context => { context.SharedCollection.Should().HaveCount(1); }); }
public void ShareCollection_OneCollectionSharedWithRights_ProperRightsSaved(bool editRights) { //Arrange var user1 = NewGuid; var user2 = NewGuid; AddUser(user1); AddUser(user2); var collection = AddCollection(user1, 5); //Act var sharedCollectionData = new SharedCollectionCreationData { CollectionId = collection.Id, EditRights = editRights, UserId = user2 }; InTransaction(context => { var controller = new SharedCollectionsController(context, GetUserProviderMock(user1)); controller.ShareCollection(sharedCollectionData); }); //Assert InTransaction(context => { var singleCollection = context.SharedCollection.Single(); singleCollection.EditRights.Should().Be(editRights); }); }
public IActionResult ChangeUserRoghts(int collectionId, [FromBody] SharedCollectionCreationData data) { var userId = _userProvider.GetCurrentUserId(); var sharedCollection = _dbContext.SharedCollection .Include(sc => sc.Collection) .SingleOrDefault(sc => sc.UserId == data.UserId && sc.CollectionId == data.CollectionId); if (sharedCollection == null) { return(NotFound()); } if (sharedCollection.Collection.OwnerId != userId) { return(Forbid()); } sharedCollection.EditRights = data.EditRights; _dbContext.SaveChanges(); return(Ok()); }
public IActionResult ShareCollection(SharedCollectionCreationData data) { var userId = _userProvider.GetCurrentUserId(); var collectionToShare = _dbContext.Collection.SingleOrDefault(c => c.Id == data.CollectionId); if (collectionToShare == null) { return(NotFound()); } if (collectionToShare.OwnerId != userId) { return(Forbid()); } var userToShare = _dbContext.Users .Include(user => user.SharedCollections) .SingleOrDefault(user => user.Id == data.UserId); if (userToShare == null) { return(NotFound()); } if (userToShare.SharedCollections.Any(sc => sc.CollectionId == data.CollectionId)) { return(NoContent()); } userToShare.SharedCollections.Add(new SharedCollection { CollectionId = data.CollectionId, UserId = data.UserId, EditRights = data.EditRights }); _dbContext.SaveChanges(); return(Ok()); }