public void AddRange()
        {
            var events     = new RecordedRepositoryEvents();
            var repository = new EntityFrameworkRepository(new FamilyDbContext(), events);
            var count      = repository.GetEntities <Animal>().Count();

            var newAnimals = new Animal[]
            {
                new Rabitt {
                    Name = "rabitty"
                },
                new Cat {
                    Name = "catty"
                }
            };

            repository.AddRange(newAnimals);
            repository.Save();

            events.AddedEvents.Count.ShouldEqual(2);
            events.SavedEvents.Count.ShouldEqual(1);

            var repository2 = new EntityFrameworkRepository(new FamilyDbContext());
            var count2      = repository2.GetEntities <Animal>().Count();

            count2.ShouldEqual(count + 2);
        }
        //        [Test]
        public void CheckAddAndDeleteFoMongoUnitOfWorkCommandRepository()
        {
            var eventRecorder = new RecordedRepositoryEvents();

            var mongoDatabase = CreateEmptyMongoDatabase();
            var repository    = new MongoDbUnitOfWorkRepository(mongoDatabase, eventRecorder);

            var account = new SimpleAccount("xyz");

            repository.GetEntities <SimpleAccount>(p => p.Name == account.Name).Any().ShouldEqual(false);
            repository.Add(account);
            repository.GetEntities <SimpleAccount>(p => p.Name == account.Name).Any().ShouldEqual(false);
            repository.Save();
            repository.GetEntities <SimpleAccount>(p => p.Name == account.Name).Any().ShouldEqual(true);
            repository.Delete(account);
            repository.GetEntities <SimpleAccount>(p => p.Name == account.Name).Any().ShouldEqual(true);
            repository.Save();
            repository.GetEntities <SimpleAccount>(p => p.Name == account.Name).Any().ShouldEqual(false);
        }