public void Dispose_ShouldDisposeTheEntitiesStoredOnOperations(
            Mock<IDisposable> entity1,
            Mock<IDisposable> entity2,
            FakeDataSet<object> dataSet)
        {
            // Arrange

            dataSet.SetUpGet(entity1.Object);

            dataSet.Update(entity2.Object);
            dataSet.Commit();

            // Act

            dataSet.Dispose();

            // Assert

            entity1.Verify(e => e.Dispose(), Times.Once);
            entity2.Verify(e => e.Dispose(), Times.Once);
        }
        public void Update_WithCommit_ShouldSetTheOriginalEntityToOldEntityAndSetAsDone(
            object entity1,
            object entity2,
            FakeDataSet<object> dataSet)
        {
            // Act

            dataSet.SetUpGet(entity1);

            dataSet.Update(entity2);
            dataSet.Commit();

            // Assert

            var operation = dataSet.InternalOperations.Single();

            operation.Type.Should().Be(BaseDataSetOperationType.Update);
            operation.CurrentEntity.Should().Not.Be.Null();
            operation.CurrentEntity.Should().Be.EqualTo(entity1);
            operation.PreviousEntity.Should().Be.EqualTo(entity2);
            operation.Done.Should().Be.True();
        }