public void Dipose_also_disposes_of_implementation()
        {
            var work = new Mock<IUnitOfWork>();
            var factory = new Mock<IUnitOfWorkFactory>();
            factory.Setup(workFactory => workFactory.Start()).Returns(work.Object);

            UnitOfWorkFactory.SetFactory(factory.Object);

            var unit = new UnitOfWork();
            unit.Dispose();

            work.Verify(mock => mock.Dispose());
        }
        public void Commit_calls_implementation()
        {
            var work = new Mock<IUnitOfWork>();
            var factory = new Mock<IUnitOfWorkFactory>();
            factory.Setup(workFactory => workFactory.Start()).Returns(work.Object);

            UnitOfWorkFactory.SetFactory(factory.Object);

            using (var unit = new UnitOfWork())
            {
                unit.Commit();
            }

            work.Verify(mock => mock.Commit());
        }