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));
        }
Esempio n. 2
0
        /// <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)));
        }