public void DefaultTextFromScore() { using (var rhetos = new BookstoreRhetos()) { var repository = rhetos.Resolve <Common.DomRepository>(); var book = new Bookstore.Book { Title = nameof(DefaultTextFromScore) }; repository.Bookstore.Book.Insert(book); var review1 = new Bookstore.Review { BookID = book.ID, Score = 1 }; var review2 = new Bookstore.Review { BookID = book.ID, Score = 3, Text = "OK" }; var review3 = new Bookstore.Review { BookID = book.ID, Score = 5 }; repository.Bookstore.Review.Insert(review1, review2, review3); var reviews = repository.Bookstore.Review.Load(new[] { review1.ID, review2.ID, review3.ID }); Assert.AreEqual( "1 - I don't like it, 3 - OK, 5 - I like it", TestUtility.DumpSorted(reviews, r => r.Score + " - " + r.Text)); } }
public void UpdateNumberOfReviews() { using (var rhetos = new BookstoreRhetos()) { var repository = rhetos.Resolve <Common.DomRepository>(); var book = new Bookstore.Book { Title = nameof(UpdateNumberOfReviews) }; repository.Bookstore.Book.Insert(book); int?getNuberOfReviews() => repository.Bookstore.NumberOfReviews .Query(nor => nor.ID == book.ID) .Select(nor => nor.Count) .SingleOrDefault(); var review1 = new Bookstore.Review { BookID = book.ID, Score = 3 }; var review2 = new Bookstore.Review { BookID = book.ID, Score = 4 }; repository.Bookstore.Review.Insert(review1, review2); Assert.AreEqual(2, getNuberOfReviews()); repository.Bookstore.Review.Delete(review1); Assert.AreEqual(1, getNuberOfReviews()); } }
public void DenyChangeOfLockedTitle() { using (var rhetos = new BookstoreRhetos()) { var repository = rhetos.Resolve <Common.DomRepository>(); var book1 = new Bookstore.Book { Title = "book1" }; var book2 = new Bookstore.Book { Title = "book2 locked" }; repository.Bookstore.Book.Insert(book1, book2); var review1 = new Bookstore.Review { BookID = book1.ID, Score = 3 }; var review2 = new Bookstore.Review { BookID = book2.ID, Score = 4 }; repository.Bookstore.Review.Insert(review1, review2); review1.Text = "updated text 1"; repository.Bookstore.Review.Update(review1); review1.Score += 1; repository.Bookstore.Review.Update(review1); review2.Text = "updated text 2"; repository.Bookstore.Review.Update(review2); review2.Score += 1; TestUtility.ShouldFail <UserException>( () => repository.Bookstore.Review.Update(review2), "It is not allowed to modify score"); } }