public void ShowReturns401WhenUserDoesntOwnList() { var options = new DbContextOptionsBuilder <ReadingListApiContext>() .UseInMemoryDatabase("show_returns_401") .Options; using (var context = new ReadingListApiContext(options)) { ReadingList readingList = new ReadingListFixture().ReadingList(); User user = new UserFixture().User(); User unauthorizedUser = new User { Email = "unauthorized test email", Avatar = "unauthorized test avatar", }; user.ReadingLists.Add(readingList); context.Users.AddRange(new List <User>() { user, unauthorizedUser }); context.SaveChanges(); SessionHelperStub session = new SessionHelperStub(unauthorizedUser); ReadingListController controller = new ReadingListController(context, session); var result = controller.Get(readingList.ReadingListId); Assert.IsType <NotFoundResult>(result); } }
public void PatchReordersAList() { var options = new DbContextOptionsBuilder <ReadingListApiContext>() .UseInMemoryDatabase("patch_reorders_a_list") .Options; using (var context = new ReadingListApiContext(options)) { ReadingList readingList = new ReadingListFixture().ReadingList(); User user = new UserFixture().User(); user.ReadingLists.Add(readingList); context.Add(user); context.SaveChanges(); Book book1 = readingList.Books[0]; Book book2 = readingList.Books[1]; Book book3 = readingList.Books[2]; SessionHelperStub session = new SessionHelperStub(user); ReadingListController controller = new ReadingListController(context, session); PatchData data = new PatchData { BookId = book1.BookId, Ranking = 2 }; JsonResult result = controller.Patch(readingList.ReadingListId, data) as JsonResult; Assert.Equal(2, book1.Ranking); Assert.Equal(1, book2.Ranking); Assert.Equal(3, book3.Ranking); } }
public void DeletesAReadingList() { var options = new DbContextOptionsBuilder <ReadingListApiContext>() .UseInMemoryDatabase("deletes_a_reading_list") .Options; using (var context = new ReadingListApiContext(options)) { User user = new UserFixture().User(); ReadingList readingList = new ReadingListFixture().ReadingList(); user.ReadingLists.Add(readingList); context.Users.Add(user); context.SaveChanges(); SessionHelperStub session = new SessionHelperStub(user); ReadingListController controller = new ReadingListController(context, session); Guid readingListId = readingList.ReadingListId; var result = controller.Delete(readingList.ReadingListId); Assert.Equal(0, context.ReadingLists.Count()); Assert.Equal(null, context.ReadingLists.Where(r => r.ReadingListId == readingListId).FirstOrDefault()); } }
public void AddsBooksToExistingReadingList() { var options = new DbContextOptionsBuilder <ReadingListApiContext>() .UseInMemoryDatabase("adds_book_to_existing_reading_list") .Options; using (var context = new ReadingListApiContext(options)) { ReadingList readingList = new ReadingListFixture().ReadingList(); User user = new UserFixture().User(); user.ReadingLists.Add(readingList); context.Users.Add(user); context.SaveChanges(); SessionHelperStub session = new SessionHelperStub(user); ReadingListController controller = new ReadingListController(context, session); Book newBook = new BookFixture().Book(); JsonResult result = controller.Put(readingList.ReadingListId, newBook) as JsonResult; List <Book> expectedResult = context.ReadingLists .Where(r => r.ReadingListId == readingList.ReadingListId) .FirstOrDefault() .Books; Assert.Equal(readingList, result.Value); Assert.Equal(4, context.Books.Count()); Assert.Contains(newBook, expectedResult); Assert.Equal(4, readingList.Books[3].Ranking); } }
public void CanUpdateRankingsOnBookRemoval() { var options = new DbContextOptionsBuilder <ReadingListApiContext>() .UseInMemoryDatabase("can_update_rankings_on_book_removal") .Options; using (var context = new ReadingListApiContext(options)) { ReadingList readingList = new ReadingListFixture().ReadingList(); context.Add(readingList); context.SaveChanges(); Book book1 = readingList.Books[0]; Book book2 = readingList.Books[1]; Book book3 = readingList.Books[2]; readingList.RemoveBook(book1.BookId); Assert.Equal(2, readingList.Books.Count()); Assert.Equal(1, book2.Ranking); Assert.Equal(2, book3.Ranking); } }
public void CanPromoteBookRanking() { var options = new DbContextOptionsBuilder <ReadingListApiContext>() .UseInMemoryDatabase("can_promote_book_ranking") .Options; using (var context = new ReadingListApiContext(options)) { ReadingList readingList = new ReadingListFixture().ReadingList(); context.Add(readingList); context.SaveChanges(); Book book1 = readingList.Books[0]; Book book2 = readingList.Books[1]; Book book3 = readingList.Books[2]; readingList.UpdateRankings(book3.BookId, 2); Assert.Equal(1, book1.Ranking); Assert.Equal(3, book2.Ranking); Assert.Equal(2, book3.Ranking); } }
public void BelongsToUser() { var options = new DbContextOptionsBuilder <ReadingListApiContext>() .UseInMemoryDatabase("belongs_to_user") .Options; using (var context = new ReadingListApiContext(options)) { context.Users.Add(new UserFixture().User()); context.SaveChanges(); ReadingList readingList = new ReadingListFixture().ReadingList(); context.ReadingLists.Add(readingList); User user = context.Users.Last(); user.ReadingLists.Add(readingList); context.SaveChanges(); Assert.Equal(user.UserId, readingList.User.UserId); } }
public void ReturnsAReadingList() { var options = new DbContextOptionsBuilder <ReadingListApiContext>() .UseInMemoryDatabase("returns_a_reading_list") .Options; using (var context = new ReadingListApiContext(options)) { User user = new UserFixture().User(); ReadingList readingList = new ReadingListFixture().ReadingList(); user.ReadingLists.Add(readingList); context.Users.Add(user); context.SaveChanges(); SessionHelperStub session = new SessionHelperStub(user); ReadingListController controller = new ReadingListController(context, session); JsonResult result = controller.Get(readingList.ReadingListId) as JsonResult; Assert.Equal(readingList, result.Value); } }