public void Decode_Tweet_Deep_Tests()
{
var fileName = ".\\data\\tweets\\singletweet.txt";
var json = File.ReadAllText(fileName);
var tweet = JsonConvert.DeserializeObject<Tweet>(json);
Assert.IsNotNull(tweet);
Assert.IsInstanceOfType(tweet, typeof (BoxKite.Twitter.Models.Tweet));
if (tweet.RetweetCount != null)
tweet.RetweetCount.ShouldBeEquivalentTo(0);
tweet.Id.ShouldBeEquivalentTo(243145735212777472);
Assert.IsNull(tweet.InReplyToId);
Assert.IsNull(tweet.InReplyToUserId);
Assert.IsNull(tweet.Location);
Assert.IsNull(tweet.Place);
Assert.IsNull(tweet.RetweetedStatus);
tweet.Favourited.ShouldBeEquivalentTo(false);
tweet.FavoriteCount.ShouldBeEquivalentTo(10);
tweet.Truncated.ShouldBeEquivalentTo(true);
tweet.Source.ShouldBeEquivalentTo(
"<a href=\"http://jason-costa.blogspot.com\" rel=\"nofollow\">My Shiny App</a>");
tweet.Text.ShouldBeEquivalentTo("Maybe he'll finally find his keys. #peterfalk");
tweet.Time.ToString().ShouldBeEquivalentTo("5/09/2012 12:37:15 AM +00:00");
//check user details
Assert.IsNotNull(tweet.User);
Assert.IsInstanceOfType(tweet.User, typeof (BoxKite.Twitter.Models.User));
tweet.User.Name.ShouldBeEquivalentTo("Jason Costa");
tweet.User.Followers.ShouldBeEquivalentTo(8760);
tweet.User.ScreenName.ShouldBeEquivalentTo("jasoncosta");
tweet.User.IsFollowedByMe.ShouldBeEquivalentTo(false);
//check entities
Assert.IsNotNull(tweet.Entities);
Assert.IsInstanceOfType(tweet.Entities, typeof (BoxKite.Twitter.Models.Entities));
if (tweet.Entities.Hashtags != null)
{
Assert.IsInstanceOfType(tweet.Entities.Hashtags.ToList()[0], typeof (BoxKite.Twitter.Models.Hashtag));
}
if (tweet.Entities.Media != null)
Assert.IsInstanceOfType(tweet.Entities.Media.ToList()[0], typeof (BoxKite.Twitter.Models.Media));
if (tweet.Entities.Mentions != null)
{
if (tweet.Entities.Mentions.Any())
Assert.IsInstanceOfType(tweet.Entities.Mentions.ToList()[0], typeof (BoxKite.Twitter.Models.Mention));
}
if (tweet.Entities.Urls != null)
{
if (tweet.Entities.Urls.Any())
Assert.IsInstanceOfType(tweet.Entities.Urls.ToList()[0], typeof (BoxKite.Twitter.Models.Url));
}
}