public void Test_with_mock_repository()
        {
            // assign
            var mockDocumentRepository = new MockDocumentRepository();

            _sut = new DocumentSigner(mockDocumentRepository);

            // act
            _sut.Sign(4);

            // assert
            Assert.IsTrue(mockDocumentRepository.Verify_Update);
        }
        public void Test_using_moq()
        {
            // assign
            var dummyDocumentRepository = It.IsAny <IDocumentRepository>(); // dummy

            var mockDocumentRepository = new Mock <IDocumentRepository>();  // stub, fake, mock

            var document = new Document
            {
                Number = 1
            };

            mockDocumentRepository.Setup(x => x.Get(It.IsAny <int>())).Returns(document); // stub method

            _sut = new DocumentSigner(mockDocumentRepository.Object);

            // act
            _sut.Sign(4);

            // assert
            mockDocumentRepository.Verify(x => x.Update(document));
        }