public void Return_False_When_UserTweet_Does_Not_Exist()
        {
            //Arrange
            var fakeUnit             = new Mock <IUnitOfWork>();
            var fakeDateTimeProvider = Mock.Of <IDateTimeProvider>();
            var fakeTweetService     = Mock.Of <ITweetService>();
            var sut = new UserTweetService(fakeUnit.Object, fakeTweetService, fakeDateTimeProvider);

            var fakeUserTweetRepo = new Mock <IGenericRepository <UserTweet> >();

            var userTweet = new UserTweet {
                UserId = "123", TweetId = "456"
            };

            var userTweetCollection = new List <UserTweet> {
                userTweet
            };

            fakeUserTweetRepo.Setup(r => r.AllAndDeleted).Returns(userTweetCollection.AsQueryable());
            fakeUnit.Setup(u => u.UserTweets).Returns(fakeUserTweetRepo.Object);

            //Act
            var exists = sut.UserTweetExistsInDeleted(userTweet.UserId, "666");

            //Assert
            Assert.IsFalse(exists);
        }
        public void Throw_Argument_Null_Exception_When_TweetId_Is_Null()
        {
            //Arrange
            var fakeTimeProvider = Mock.Of <IDateTimeProvider>();
            var fakeUnit         = Mock.Of <IUnitOfWork>();
            var fakeTweetService = Mock.Of <ITweetService>();
            var sut = new UserTweetService(fakeUnit, fakeTweetService, fakeTimeProvider);

            //Act & Assert
            Assert.ThrowsException <ArgumentNullException>(() => sut.UserTweetExistsInDeleted("123", null));
        }