Ejemplo n.º 1
0
        public void TestFindAll()
        {
            ExecInDatabase((options) => {
                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    repository.SaveRange(new [] {
                        new Writter {
                            Name = "John Doe"
                        },
                        new Writter {
                            Name = "Janne Doe"
                        },
                        new Writter {
                            Name = "Dick Doe"
                        }
                    });
                }

                using (var context = new TestingDbContext(options)) {
                    var repository    = new WrittersRepository(context);
                    var writters      = repository.FindAll();
                    var writtersNames = new [] { "John Doe", "Janne Doe", "Dick Doe" };
                    Assert.AreEqual(writters.Count(), 3);
                    Assert.IsTrue(writtersNames.SequenceEqual(writters.Select(_ => _.Name)));
                }
            });
        }
Ejemplo n.º 2
0
        public void TestFind()
        {
            ExecInDatabase((options) => {
                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    repository.SaveRange(new [] {
                        new Writter {
                            Name = "John Doe"
                        },
                        new Writter {
                            Name = "Janne Doe"
                        },
                        new Writter {
                            Name = "Dick Doe"
                        }
                    });
                }

                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    var writter    = repository.Find(_ => _.Name.StartsWith("Dick")).FirstOrDefault();
                    Assert.IsNotNull(writter);
                    Assert.AreEqual(writter.Name, "Dick Doe");
                }
            });
        }
Ejemplo n.º 3
0
        public void TestDeleteAll()
        {
            ExecInDatabase((options) => {
                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    repository.SaveRange(new [] {
                        new Writter {
                            Name = "John Doe"
                        },
                        new Writter {
                            Name = "Janne Doe"
                        },
                        new Writter {
                            Name = "Dick Doe"
                        }
                    });
                }

                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    repository.DeleteAll();
                }

                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    Assert.AreEqual(repository.Count(), 0);
                }
            });
        }
Ejemplo n.º 4
0
        public void TestDeleteRelational()
        {
            ExecInDatabase((options) => {
                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    var writter    = new Writter {
                        Name = "John Doe"
                    };
                    writter.Books.Add(new Book {
                        Name = "Universe Mysteries", Pages = 42
                    });
                    repository.Save(writter);
                }

                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    var writter    = repository.Query().First();
                    repository.Delete(writter);
                }

                using (var context = new TestingDbContext(options)) {
                    var writterRepository = new WrittersRepository(context);
                    var bookRepository    = new BooksRepository(context);
                    Assert.AreEqual(writterRepository.Count(), 0);
                    Assert.AreEqual(bookRepository.Count(), 0);
                }
            });
        }
Ejemplo n.º 5
0
        public void TestUpdate()
        {
            ExecInDatabase((options) => {
                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    repository.Save(new Writter {
                        Name = "John Doe"
                    });
                }

                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    var writter    = repository.Query().First();
                    writter.Name   = "Janne Doe";
                    repository.Update(writter);
                }

                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    var writter    = repository.Query().First();
                    Assert.AreEqual(repository.Count(), 1);
                    Assert.AreEqual(writter.Id, 1);
                    Assert.AreEqual(writter.Name, "Janne Doe");
                }
            });
        }
Ejemplo n.º 6
0
        public void TestSave()
        {
            ExecInDatabase((options) => {
                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    repository.Save(new Writter {
                        Name = "John Doe"
                    });
                    repository.SaveRange(new [] {
                        new Writter {
                            Name = "Janne Doe"
                        },
                        new Writter {
                            Name = "Dick Doe"
                        }
                    });
                }

                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    var first      = repository.Query().First();
                    Assert.AreEqual(repository.Count(), 3);
                    Assert.AreEqual(first.Id, 1);
                    Assert.AreEqual(first.Name, "John Doe");
                    Assert.IsTrue(first.Books.IsEmpty());
                }
            });
        }
Ejemplo n.º 7
0
        void ExecInDatabase(Action <DbContextOptions <BaseDbContext> > action)
        {
            var connection = new SqliteConnection("DataSource=:memory:");

            connection.Open();
            try {
                var options = new DbContextOptionsBuilder <BaseDbContext>().UseSqlite(connection).Options;
                using (var context = new TestingDbContext(options)) {
                    context.Database.EnsureCreated();
                }
                action.Invoke(options);
            } finally {
                connection.Close();
            }
        }
Ejemplo n.º 8
0
        public void TestUpdateRelational()
        {
            ExecInDatabase((options) => {
                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    var writter    = new Writter {
                        Name = "John Doe"
                    };
                    writter.Books.Add(new Book {
                        Name = "Universe Mysteries", Pages = 42
                    });
                    repository.Save(writter);
                }

                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    var writter    = repository.Query().Include(_ => _.Books).First();
                    var book       = writter.Books.First();
                    writter.Name   = "Janne Doe";
                    book.Name      = "Stars of the Universe";
                    book.Pages     = 1000;
                    repository.Update(writter);
                }

                using (var context = new TestingDbContext(options)) {
                    var repository = new WrittersRepository(context);
                    var writter    = repository.Query().Include(_ => _.Books).First();
                    var book       = writter.Books.First();
                    Assert.AreEqual(repository.Count(), 1);
                    Assert.AreEqual(writter.Id, 1);
                    Assert.AreEqual(writter.Name, "Janne Doe");
                    Assert.AreEqual(book.Id, 1);
                    Assert.AreEqual(book.Name, "Stars of the Universe");
                    Assert.AreEqual(book.Pages, 1000);
                }
            });
        }