public void ThrowArgumentNullException_WhenPassedFilePathIsNull()
        {
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var repositoryMock = new Mock <IWhoScoredRepository <TrollPhoto> >();
            ITrollPhotoService trollPhotoService = new TrollPhotoService(unitOfWorkMock.Object, repositoryMock.Object);

            string userId        = "id";
            var    actualMessage = Assert.Throws <ArgumentNullException>(() => trollPhotoService.UploadTrollPhoto(userId, null));

            StringAssert.IsMatch("filePath", actualMessage.ParamName);
        }
        public void CallUnitOfWorkCommitMethodOncee_WhenPassedParametersAreValid()
        {
            var repositoryMock = new Mock <IWhoScoredRepository <TrollPhoto> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            ITrollPhotoService trollPhotoService = new TrollPhotoService(unitOfWorkMock.Object, repositoryMock.Object);

            string userId   = "id";
            string filePath = "path";

            trollPhotoService.UploadTrollPhoto(userId, filePath);

            unitOfWorkMock.Verify(x => x.Commit(), Times.Once);
        }
        public void CallUnitOfWorkDisposeMethodOnce()
        {
            var repositoryMock = new Mock <IWhoScoredRepository <TrollPhoto> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            ITrollPhotoService trollPhotoService = new TrollPhotoService(unitOfWorkMock.Object, repositoryMock.Object);

            unitOfWorkMock.Setup(x => x.Dispose()).Verifiable();

            string userId   = "id";
            string filePath = "path";

            trollPhotoService.UploadTrollPhoto(userId, filePath);

            unitOfWorkMock.Verify(x => x.Dispose(), Times.Once);
        }