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 <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 this.jsonProviderStub.Verify( x => x.DeserializeObject <TweetDto>(It.IsAny <string>()), Times.Once ); }
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); }
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); }