public void TestEfCoreLoggingWithMutipleDbContexts()
        {
            //SETUP
            List <LogOutput> logs1;
            var options1 = SqliteInMemory.CreateOptions <BookContext>();

            using (var context = new BookContext(options1))
            {
                //ATTEMPT
                logs1 = context.SetupLogging();
                context.Database.EnsureCreated();
            }
            var logs1Count = logs1.Count;
            var options2   = SqliteInMemory.CreateOptions <BookContext>();

            using (var context = new BookContext(options2))
            {
                //ATTEMPT
                var logs = context.SetupLogging();
                context.Database.EnsureCreated();

                //VERIFY
                logs.Count.ShouldBeInRange(1, 100);
                logs1.Count.ShouldNotEqual(logs1Count); //The second DbContext methods are also logged to the first logger
            }
        }
Exemplo n.º 2
0
        public void TestExample()
        {
            //SETUP
            var options = this
                          .CreateUniqueClassOptions <BookContext>();

            using (var context = new BookContext(options))
            {
                context.CreateEmptyViaWipe();
                var logs = context.SetupLogging();

                //ATTEMPT
                context.Add(new Book {
                    Title = "New Book"
                });
                context.SaveChanges();

                //VERIFY
                context.Books.Count().ShouldEqual(1);
                foreach (var log in logs.ToList())
                {
                    _output.WriteLine(log.ToString());
                }
            }
        }
        public void TestEfCoreLogging2()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <BookContext>();

            using (var context = new BookContext(options))
            {
                //ATTEMPT
                var logs = context.SetupLogging();
                context.Database.EnsureCreated();

                //VERIFY
                logs.Count.ShouldBeInRange(11, 50);
            }
        }
        public void TestEfCoreLogging1()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <BookContext>();

            using (var context = new BookContext(options))
            {
                //ATTEMPT
                var logs = context.SetupLogging();
                context.Database.EnsureCreated();

                //VERIFY
                foreach (var log in logs.ToList()) //This stops the 'bleed' problem
                {
                    _output.WriteLine(log.ToString());
                }
                logs.Count.ShouldBeInRange(11, 50);
            }
        }
Exemplo n.º 5
0
        public void TestCreateDbToGetLogsOk()
        {
            //SETUP
            var options = this.CreateUniqueMethodOptions <BookContext>();

            using (var context = new BookContext(options))
            {
                //ATTEMPT
                var logs = context.SetupLogging();
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                //VERIFY
                foreach (var log in logs.ToList())
                {
                    _output.WriteLine(log.ToString());
                }
            }
        }
        [RunnableInDebugOnly] //#A
        public void CaptureSqlEfCoreCreatesDatabase()
        {
            //SETUP
            var options = this.
                          CreateUniqueClassOptions <BookContext>();

            using (var context = new BookContext(options))
            {
                var logs = context.SetupLogging(); //#B

                //ATTEMPT
                context.Database.EnsureDeleted(); //#C
                context.Database.EnsureCreated(); //#C

                //VERIFY
                foreach (var log in logs.ToList())  //This stops the 'bleed' problem
                {                                   //#D
                    _output.WriteLine(log.Message); //#D
                }                                   //#D
            }
        }
        public void TestLogQueryClientEvaluationWarning()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <BookContext>(false);

            using (var context = new BookContext(options))
            {
                context.Database.EnsureCreated();
                var logs = context.SetupLogging();

                //ATTEMPT
                var books = context.Books.Select(x => new ClientSeverTestDto
                {
                    ClientSideProp = x.Price.ToString("C")
                }).OrderBy(x => x.ClientSideProp)
                            .ToList();

                //VERIFY
                logs.ToList().Any(x => x.EventId.Name == RelationalEventId.QueryClientEvaluationWarning.Name).ShouldBeTrue();
            }
        }
        public void TestEfCoreLoggingExample()
        {
            //SETUP
            var options = SqliteInMemory
                          .CreateOptions <BookContext>();

            using (var context = new BookContext(options))
            {
                context.Database.EnsureCreated();
                context.SeedDatabaseFourBooks();
                var logs = context.SetupLogging(); //#C

                //ATTEMPT
                var books = context.Books.ToList(); //#D

                //VERIFY
                foreach (var log in logs.ToList())     //This stops the 'bleed' problem
                {                                      //#E
                    _output.WriteLine(log.ToString()); //#E
                }                                      //#E
            }
        }
        public void TestEfCoreLoggingStringWithBadValues()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <BookContext>();

            using (var context = new BookContext(options))
            {
                context.Database.EnsureCreated();

                //ATTEMPT
                var logs = context.SetupLogging();
                context.Books.Count();
                context.Add(new Book {
                    Title = "The person's boss said, \"What's that about?\""
                });
                context.SaveChanges();

                //VERIFY
                foreach (var log in logs.ToList()) //This stops the 'bleed' problem
                {
                    _output.WriteLine(log.ToString());
                }
            }
        }