public void DisposingObjects_AssertsDisposed()
        {
            // Arrange
            var indServiceDisposable  = DisposableTestFactory.Create(() => new Mock <IIndividualService>().Object);
            var indServiceFactoryMock = new Mock <IIndividualServiceFactory>();

            indServiceFactoryMock.Setup(f => f.Create()).Returns(indServiceDisposable.TestObject);

            var orgService = new OrganisationService(indServiceFactoryMock.Object);

            // Act
            orgService.DoStuffWithDisposing();

            // Assert
            Assert.DoesNotThrow(() => indServiceDisposable.AssertDisposed());
        }
        public void UsingObject_AlreadyBeingDisposed_FailsAssertion()
        {
            // Arrange
            var indServiceDisposable  = DisposableTestFactory.Create(() => new Mock <IIndividualService>().Object);
            var indServiceFactoryMock = new Mock <IIndividualServiceFactory>();

            indServiceFactoryMock.Setup(f => f.Create()).Returns(indServiceDisposable.TestObject);

            var orgService = new OrganisationService(indServiceFactoryMock.Object);

            // Act
            orgService.DoStuffAfterDisposed();

            // Assert
            var actualException = Assert.Throws <AssertionException>(() => indServiceDisposable.AssertDisposed());

            Assert.AreEqual(AssertionErrorMessages.MemberCalledAfterDisposedErrorMessage, actualException.Message);
        }