public void AllMultipleDocumentTypes()
        {
            // STORE
            using (var ds = new DocumentStore(_dataDirectory))
            {
                ds.DestroyAllData();

                for (int i = 0; i < 100; i++) {
                    var person = new PersonEntity() { Name = "MonoDS", Email = "test" };
                    var car = new CarEntity() { Name = "MonoDS", Make = "MonoDS", Model = "MonoDS GTI" };

                    ds.Store<PersonEntity>(person);
                    ds.Store<CarEntity>(car);
                }
            }

            // LOAD ALL
            using (var ds = new DocumentStore(_dataDirectory))
            {
                var loadedPersons = ds.All<PersonEntity>();
                var loadedCars = ds.All<CarEntity>();

                Assert.AreEqual(100, loadedPersons.Count());
                foreach(var person in loadedPersons)
                {
                    Assert.AreEqual("MonoDS", person.Name);
                    Assert.AreEqual("test", person.Email);
                }

                Assert.AreEqual(100, loadedCars.Count());
                foreach(var car in loadedCars)
                {
                    Assert.AreEqual("MonoDS", car.Name);
                    Assert.AreEqual("MonoDS", car.Make);
                    Assert.AreEqual("MonoDS GTI", car.Model);
                }
            }
        }
        public void StoreMultipleDocumentTypes()
        {
            using (var ds = new DocumentStore(_dataDirectory))
            {
                ds.DestroyAllData();

                var person = new PersonEntity() { Name = "MonoDS", Email = "test" };
                var car = new CarEntity() { Name = "MonoDS", Make = "MonoDS", Model = "MonoDS GTI" };

                ds.Store<PersonEntity>(person);
                ds.Store<CarEntity>(car);

                Assert.AreEqual(1, ds.Count<PersonEntity>());
                Assert.AreEqual(1, ds.Count<CarEntity>());
            }
        }
        public void UpdateMultipleDocumentTypes()
        {
            using (var ds = new DocumentStore(_dataDirectory))
            {
                ds.DestroyAllData();

                var person = new PersonEntity() { Name = "MonoDS", Email = "test" };
                var car = new CarEntity() { Name = "MonoDS", Make = "MonoDS", Model = "MonoDS GTI" };

                ds.Store<PersonEntity>(person);
                ds.Store<CarEntity>(car);

                Assert.AreEqual(1, ds.Count<PersonEntity>());
                Assert.AreEqual(1, ds.Count<CarEntity>());
            }

            // update
            using (var ds = new DocumentStore(_dataDirectory))
            {
                var person = ds.All<PersonEntity>().First();
                var car = ds.All<CarEntity>().First();
                person.Name = "MonoDS2";
                car.Name = "MonoDS2";

                ds.Update<PersonEntity>(person);
                ds.Update<CarEntity>(car);
            }

            // check result
            using (var ds = new DocumentStore(_dataDirectory))
            {
                var person = ds.All<PersonEntity>().First();
                var car = ds.All<CarEntity>().First();
                Assert.AreEqual("MonoDS2", person.Name);
                Assert.AreEqual("MonoDS2", car.Name);
            }
        }
        public void FindMultipleDocumentTypes()
        {
            var person = new PersonEntity() { Name = "MonoDS", Email = "test" };
            var car = new CarEntity() { Name = "MonoDS", Make = "MonoDS", Model = "MonoDS GTI" };

            using (var ds = new DocumentStore(_dataDirectory))
            {
                ds.DestroyAllData();
                ds.Store<PersonEntity>(person);
                ds.Store<CarEntity>(car);
            }

            using (var ds = new DocumentStore(_dataDirectory))
            {
                var loadedPerson = ds.Find<PersonEntity>(person.Id);
                var loadedCar = ds.Find<CarEntity>(car.Id);

                Assert.AreEqual(person.Id, loadedPerson.Id);
                Assert.AreEqual(person.Name, loadedPerson.Name);
                Assert.AreEqual(person.Email, loadedPerson.Email);
                Assert.AreEqual(car.Id, loadedCar.Id);
                Assert.AreEqual(car.Name, loadedCar.Name);
                Assert.AreEqual(car.Make, loadedCar.Make);
                Assert.AreEqual(car.Model, loadedCar.Model);
            }
        }