Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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());
            }
        }
Esempio n. 3
0
        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");
            }
        }