public void Delete_Method()
        {
            Assert.Throws <ArgumentNullException>(() => new EFCodeFirstRepository <TestEntity>(new TestContext()).Delete(null));

            var entity = new TestEntity();

            using (var repository = new EFCodeFirstRepository <TestEntity>(new TestContext()))
            {
                Assert.Throws <InvalidOperationException>(() => repository.Delete(entity));
                Assert.False(repository.Persist(entity).Delete(entity).Commit().Any());
            }
        }
        public void Commit_Method()
        {
            var entity = new TestEntity();

            using (var repository = new EFCodeFirstRepository <TestEntity>(new TestContext()))
            {
                Assert.False(repository.Any());

                Assert.True(ReferenceEquals(repository.Persist(entity).Commit(), repository));
                Assert.True(ReferenceEquals(repository.Single(), entity));

                repository.Delete(entity);
                Assert.True(ReferenceEquals(repository.Single(), entity));

                repository.Commit();
                Assert.False(repository.Any());
            }
        }