public void TestCreateBookAndCheckPartsOk() { //SETUP var options = SqliteInMemory.CreateOptionsWithLogging <SqlEventsDbContext>(x => _output.WriteLine(x.Message)); using (var context = new SqlEventsDbContext(options, null)) { context.Database.EnsureCreated(); var book = WithEventsEfTestData.CreateDummyBookTwoAuthorsTwoReviews(); context.Add(book); context.SaveChanges(); } using (var context = new SqlEventsDbContext(options, null)) { //ATTEMPT var bookWithRelationships = context.Books .Include(p => p.AuthorsLink).ThenInclude(p => p.Author) .Include(p => p.Reviews) .Single(); //VERIFY bookWithRelationships.AuthorsLink.Select(y => y.Author.Name).OrderBy(x => x).ToArray() .ShouldEqual(new[] { "Author1", "Author2" }); bookWithRelationships.Reviews.Count().ShouldEqual(2); } }
public static List <BookWithEvents> SeedDatabaseFourBooks(this SqlEventsDbContext context) { var fourBooks = CreateFourBooks(); context.Books.AddRange(fourBooks); context.SaveChanges(); return(fourBooks); }
public void TestCreateDatabaseAndSeedOk() { //SETUP var options = SqliteInMemory.CreateOptionsWithLogging <SqlEventsDbContext>(x => _output.WriteLine(x.Message)); using (var context = new SqlEventsDbContext(options, null)) { context.Database.EnsureCreated(); //ATTEMPT context.SeedDatabaseFourBooks(); //VERIFY context.Books.Count().ShouldEqual(4); } }
public void TestBookRemoveReviewCausesEventOk() { //SETUP var options = SqliteInMemory.CreateOptions <SqlEventsDbContext>(); using (var context = new SqlEventsDbContext(options, null)) { context.Database.EnsureCreated(); var book = WithEventsEfTestData.CreateDummyBookTwoAuthorsTwoReviews(); context.Add(book); context.SaveChanges(); book.GetBeforeSaveEventsThenClear(); //ATTEMPT book.RemoveReview(book.Reviews.First().ReviewId); //VERIFY var dEvent = book.GetBeforeSaveEventsThenClear().Single(); dEvent.ShouldBeType <BookReviewRemovedEvent>(); } }
public void TestAuthorChangeNameCausesEventOk() { //SETUP var options = SqliteInMemory.CreateOptions <SqlEventsDbContext>(); using (var context = new SqlEventsDbContext(options, null)) { context.Database.EnsureCreated(); var book = WithEventsEfTestData.CreateDummyBookTwoAuthorsTwoReviews(); context.Add(book); context.SaveChanges(); var author = book.AuthorsLink.First().Author; author.GetBeforeSaveEventsThenClear(); //ATTEMPT author.ChangeName("new name"); //VERIFY var dEvent = author.GetBeforeSaveEventsThenClear().Single(); dEvent.ShouldBeType <AuthorNameUpdatedEvent>(); } }
public void TestCheckUpdateBookCachePropertiesOk() { //SETUP var sqlOptions = SqliteInMemory.CreateOptions <SqlEventsDbContext>(); using (var context = new SqlEventsDbContext(sqlOptions, null)) { context.Database.EnsureCreated(); var books = DddEfTestData.CreateDummyBooksWithEvents(2); books[0].AuthorsOrdered = null; context.AddRange(books); context.SaveChanges(); var service = new HardResetCacheService(context); //ATTEMPT var status = service.CheckUpdateBookCacheProperties(); //VERIFY status.Message.ShouldEqual("Processed 2 books and 2 errors found. See returned string for details"); _output.WriteLine(status.Result); } }
public SqlEventsListBooksService(SqlEventsDbContext context) { _context = context; }
public AuthorNameUpdatedHandler(SqlEventsDbContext context) { _context = context; }
public BookEventsFilterDropdownService(SqlEventsDbContext db) { _db = db; }
public HardResetCacheService(SqlEventsDbContext context) { _context = context; }
public static void SeedDatabaseDummyBooks(this SqlEventsDbContext context, int numBooks = 10, bool stepByYears = false) { context.Books.AddRange(CreateDummyBooks(numBooks, stepByYears)); context.SaveChanges(); }