public void TestOrderDbContextWithBooksPartOk() { //SETUP var userId = Guid.NewGuid(); var options = SqliteInMemory.CreateOptions <OrderDbContext>(); using var context = new OrderDbContext(options, new FakeUserIdService(userId)); //ATTEMPT context.Database.EnsureCreated(); context.BookContextEnsureCreatedOnOrderDb(); //VERIFY context.GetTableNamesInSqliteDb().OrderBy(x => x).ShouldEqual(new List <string>() { "Authors", "BookAuthor", "Books", "BookTag", "LineItem", "Orders", "Review", "sqlite_sequence", "Tags" }.OrderBy(x => x)); }
/// <summary> /// This adds the four tests books to the OrderDbContext to give you access to BookView entity used in the Order /// </summary> /// <param name="orderContext"></param> /// <returns></returns> public static IEnumerable <BookView> SeedFourBookDdPartWithOptionalDbSchemaAdd(this OrderDbContext orderContext, bool ensureCreated) { if (!orderContext.Database.IsSqlite()) { throw new NotSupportedException("This only works on SQLite databases"); } if (ensureCreated) { orderContext.BookContextEnsureCreatedOnOrderDb(); } var options = SqliteInMemory.CreateOptions <BookDbContext>( builder => builder.UseSqlite(orderContext.Database.GetDbConnection())); options.StopNextDispose(); using var bookContext = new BookDbContext(options); var books = bookContext.SeedDatabaseFourBooks(); return(books.Select(x => orderContext.BookViews.Single(y => y.BookId == x.BookId))); }