public void CreateCorrectInstanceOfTrollPhotoService_WhenPassedArgumentsAreValid()
        {
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var repositoryMock = new Mock <IWhoScoredRepository <TrollPhoto> >();

            ITrollPhotoService trollPhotoService = new TrollPhotoService(unitOfWorkMock.Object, repositoryMock.Object);

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

            trollPhotoService.GetAllPaths();

            repositoryMock.Verify(x => x.GetAll(), Times.Once);
        }
        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 GetAllTrollPhotos()
        {
            var repositoryMock = new Mock <IWhoScoredRepository <TrollPhoto> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            ITrollPhotoService trollPhotoService = new TrollPhotoService(unitOfWorkMock.Object, repositoryMock.Object);

            IEnumerable <TrollPhoto> trollPhotos = new List <TrollPhoto>();

            repositoryMock.Setup(x => x.GetAll()).Returns(trollPhotos);

            IEnumerable <TrollPhoto> actualTrollPhotos = trollPhotoService.GetAll();

            CollectionAssert.AreEquivalent(trollPhotos, actualTrollPhotos);
        }
        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);
        }