public void DestroyPatientDocument_GivenPatientDocument_Succeeds()
        {
            var bytes = new byte[] { 0, 0, 0 };
            var hashingUtility = new Mock<IHashingUtility>();
            hashingUtility.Setup(m => m.ComputeHash(It.IsAny<byte[]>())).Returns("XXXXXXXXXXX");

            var patientDocumentRepositoryMock = new Mock<IPatientDocumentRepository> ();
            var patientDocumentFactory = new PatientDocumentFactory (
                patientDocumentRepositoryMock.Object, hashingUtility.Object );
            var patient = new Mock<Patient> ();

            var patientDocument = new Mock<PatientDocument> ();
            patientDocument.Setup ( p => p.Patient ).Returns ( patient.Object );

            patientDocumentFactory.DestroyPatientDocument ( patientDocument.Object );
        }
        public void DestroyPatientDocument_GivenPatientDocument_MadeTransient()
        {
            bool madeTransient = true;
            var hashingUtility = new Mock<IHashingUtility>();
            hashingUtility.Setup(m => m.ComputeHash(It.IsAny<byte[]>())).Returns("XXXXXXXXXXX");

            var patientDocumentRepositoryMock = new Mock<IPatientDocumentRepository> ();
            patientDocumentRepositoryMock
                .Setup ( p => p.MakeTransient ( It.IsAny<PatientDocument> () ) )
                .Callback ( () => madeTransient = true );
            var patientDocumentFactory = new PatientDocumentFactory (
                patientDocumentRepositoryMock.Object, hashingUtility.Object );
            var patient = new Mock<Patient> ();

            var patientDocument = new Mock<PatientDocument> ();
            patientDocument.Setup ( p => p.Patient ).Returns ( patient.Object );

            patientDocumentFactory.DestroyPatientDocument ( patientDocument.Object );

            Assert.IsTrue ( madeTransient );
        }