コード例 #1
0
        public async Task Call_JsonProvider_Deserialize_Once()
        {
            // Arrange
            this.apiProviderStub
            .Setup(x => x.GetJSON(It.IsAny <string>()))
            .ReturnsAsync("correctJSON");

            this.jsonProviderStub
            .Setup(x => x.DeserializeObject <TwitterUserDto>(It.IsAny <string>()))
            .Returns(new TwitterUserDto())
            .Verifiable();

            var twitterService = new global::RTWTR.Service.Twitter.TwitterService(
                this.apiProviderStub.Object,
                this.jsonProviderStub.Object,
                this.mappingProviderStub.Object
                );

            // Act
            var userDto = await twitterService.GetSingleUserAsync("screenName");

            // Assert
            this.jsonProviderStub.Verify(
                x => x.DeserializeObject <TwitterUserDto>(It.IsAny <string>()),
                Times.Once
                );
        }
コード例 #2
0
        public async Task Returns_EmptyUser_When_ResponseIsWhitespace()
        {
            // Arrange
            this.apiProviderStub
            .Setup(x => x.GetJSON(It.IsAny <string>()))
            .ReturnsAsync("");

            this.jsonProviderStub
            .Setup(x => x.DeserializeObject <TwitterUserDto>(It.IsAny <string>()))
            .Returns(new TwitterUserDto())
            .Verifiable();

            var twitterService = new global::RTWTR.Service.Twitter.TwitterService(
                this.apiProviderStub.Object,
                this.jsonProviderStub.Object,
                this.mappingProviderStub.Object
                );

            // Act
            var userDto = await twitterService.GetSingleUserAsync("screenName");

            // Assert
            Assert.IsNotNull(userDto);
            Assert.IsNull(userDto.Id);
            Assert.IsNull(userDto.Name);
            Assert.IsNull(userDto.Description);
            Assert.IsNull(userDto.TwitterId);
            Assert.IsNull(userDto.ProfileImageUrl);
        }
コード例 #3
0
        public async Task Returns_EmptyTweet_When_ResponseIsWhitespace()
        {
            // Arrange
            this.apiProviderStub
            .Setup(x => x.GetJSON(It.IsAny <string>()))
            .ReturnsAsync("");

            this.jsonProviderStub
            .Setup(x => x.DeserializeObject <TweetDto>(It.IsAny <string>()))
            .Returns(new TweetDto())
            .Verifiable();

            var twitterService = new global::RTWTR.Service.Twitter.TwitterService(
                this.apiProviderStub.Object,
                this.jsonProviderStub.Object,
                this.mappingProviderStub.Object
                );

            // Act
            var TweetDto = await twitterService.GetSingleTweetAsync("screenName");

            // Assert
            Assert.IsNotNull(TweetDto);
            Assert.IsNull(TweetDto.Id);
            Assert.IsNull(TweetDto.Text);
            Assert.IsNull(TweetDto.TwitterUser);
            Assert.IsNull(TweetDto.CreatedAt);
        }
コード例 #4
0
        public async Task Returns_CorrectUser_When_ResponseIsCorrect()
        {
            // Arrange
            this.apiProviderStub
            .Setup(x => x.GetJSON(It.IsAny <string>()))
            .ReturnsAsync("correctJSON");

            this.jsonProviderStub
            .Setup(x => x.DeserializeObject <TwitterUserDto>("correctJSON"))
            .Returns(
                new TwitterUserDto()
            {
                Id          = "ID",
                Name        = "Jason",
                Description = "CorrectDTO"
            })
            .Verifiable();

            var twitterService = new global::RTWTR.Service.Twitter.TwitterService(
                this.apiProviderStub.Object,
                this.jsonProviderStub.Object,
                this.mappingProviderStub.Object
                );

            // Act
            var userDto = await twitterService.GetSingleUserAsync("screenName");

            // Assert
            Assert.IsNotNull(userDto);
            Assert.AreEqual("ID", userDto.Id);
            Assert.AreEqual("Jason", userDto.Name);
            Assert.AreEqual("CorrectDTO", userDto.Description);
        }
コード例 #5
0
        public void Not_ReturnNull_When_InvokedWithCorrectParameters()
        {
            // Arrange & Act
            var twitterService = new global::RTWTR.Service.Twitter.TwitterService(
                this.apiProviderStub.Object,
                this.jsonProviderStub.Object,
                this.mappingProviderStub.Object
                );

            // Assert
            Assert.IsNotNull(twitterService);
        }
コード例 #6
0
        public async Task Returns_CorrectTweet_When_ResponseIsCorrect()
        {
            // Arrange
            this.apiProviderStub
            .Setup(x => x.GetJSON(It.IsAny <string>()))
            .ReturnsAsync("correctJSON");

            this.jsonProviderStub
            .Setup(x => x.DeserializeObject <TweetDto>("correctJSON"))
            .Returns(
                new TweetDto()
            {
                Id          = "ID",
                Text        = "Tweet Text",
                CreatedAt   = "createdAt",
                TwitterUser = new TwitterUserDto
                {
                    Id         = "userId",
                    Name       = "userName",
                    ScreenName = "userScreenName"
                }
            })
            .Verifiable();

            var twitterService = new global::RTWTR.Service.Twitter.TwitterService(
                this.apiProviderStub.Object,
                this.jsonProviderStub.Object,
                this.mappingProviderStub.Object
                );

            // Act
            var TweetDto = await twitterService.GetSingleTweetAsync("screenName");

            // Assert
            Assert.IsNotNull(TweetDto);
            Assert.IsNotNull(TweetDto.TwitterUser);
            Assert.AreEqual("ID", TweetDto.Id);
            Assert.AreEqual("Tweet Text", TweetDto.Text);
            Assert.AreEqual("createdAt", TweetDto.CreatedAt);
            Assert.AreEqual("userId", TweetDto.TwitterUser.Id);
            Assert.AreEqual("userName", TweetDto.TwitterUser.Name);
            Assert.AreEqual("userScreenName", TweetDto.TwitterUser.ScreenName);
        }
コード例 #7
0
        public async Task Return_CorrectJSON_When_ScreenNameIsValid()
        {
            // Arrange
            this.apiProviderStub
            .Setup(x => x.GetJSON(It.IsAny <string>()))
            .ReturnsAsync("correctJSON");

            var twitterService = new global::RTWTR.Service.Twitter.TwitterService(
                this.apiProviderStub.Object,
                this.jsonProviderStub.Object,
                this.mappingProviderStub.Object
                );

            var result = await twitterService.GetSingleTweetJSONAsync("screenName");

            Assert.AreEqual(
                "correctJSON",
                result
                );
        }
コード例 #8
0
        public async Task Return_EmptyString_When_ResponseIsNull()
        {
            // Arrange
            this.apiProviderStub
            .Setup(x => x.GetJSON(It.IsAny <string>()))
            .ReturnsAsync((string)null);

            var twitterService = new global::RTWTR.Service.Twitter.TwitterService(
                this.apiProviderStub.Object,
                this.jsonProviderStub.Object,
                this.mappingProviderStub.Object
                );

            // Act
            var result = await twitterService.GetSingleTweetJSONAsync("screenName");

            // Assert
            Assert.AreEqual(
                string.Empty,
                result
                );
        }
コード例 #9
0
        public async Task Call_ApiProvider_GetJSON_Once()
        {
            // Arrange
            this.apiProviderStub
            .Setup(x => x.GetJSON(It.IsAny <string>()))
            .ReturnsAsync("correctJSON")
            .Verifiable();

            var twitterService = new global::RTWTR.Service.Twitter.TwitterService(
                this.apiProviderStub.Object,
                this.jsonProviderStub.Object,
                this.mappingProviderStub.Object
                );

            // Act
            var result = await twitterService.GetSingleTweetJSONAsync("screenName");

            // Assert
            this.apiProviderStub.Verify(
                x => x.GetJSON(It.IsAny <string>()),
                Times.Once
                );
        }