public void Decode_Entity_Media_Separate_Tests()
{
var fileName = ".\\data\\entity-with-media.txt";
var json = File.ReadAllText(fileName);
var tweet = JsonConvert.DeserializeObject<Tweet>(json);
var entity = tweet.Entities;
var text = tweet.Text;
Assert.IsNotNull(entity);
Assert.IsInstanceOfType(entity, typeof(BoxKite.Twitter.Models.Entities));
Assert.IsNotNull(entity.Media);
entity.Media.Count().ShouldBeEquivalentTo(1);
entity.Media.ToList()[0].Id.ShouldBeEquivalentTo(76360760611180544);
entity.Media.ToList()[0].MediaUrl.ShouldBeEquivalentTo("http://p.twimg.com/AQ9JtQsCEAA7dEN.jpg");
entity.Media.ToList()[0].MediaUrlHttps.ShouldBeEquivalentTo("https://p.twimg.com/AQ9JtQsCEAA7dEN.jpg");
entity.Media.ToList()[0].Url.ShouldBeEquivalentTo("http://t.co/qbJx26r");
entity.Media.ToList()[0].DisplayUrl.ShouldBeEquivalentTo("pic.twitter.com/qbJx26r");
entity.Media.ToList()[0].ExpandedUrl.ShouldBeEquivalentTo("http://twitter.com/twitter/status/76360760606986241/photo/1");
Assert.IsNotNull(entity.Media.ToList()[0].Sizes);
Assert.IsNotNull(entity.Media.ToList()[0].Sizes.Large);
Assert.IsNotNull(entity.Media.ToList()[0].Sizes.Medium);
Assert.IsNotNull(entity.Media.ToList()[0].Sizes.Small);
Assert.IsNotNull(entity.Media.ToList()[0].Sizes.Thumb);
entity.Media.ToList()[0].Sizes.Large.Height.ShouldBeEquivalentTo(466);
entity.Media.ToList()[0].Sizes.Large.Width.ShouldBeEquivalentTo(700);
entity.Media.ToList()[0].Sizes.Large.Resize.ShouldBeEquivalentTo("fit");
entity.Media.ToList()[0].Type.ShouldBeEquivalentTo("photo");
entity.Media.ToList()[0].indices.Count().ShouldBeEquivalentTo(2);
// do indirect check of string for media
var zeroOffsetStart = entity.Media.ToList()[0].indices.ToList()[0];
Assert.IsInstanceOfType(zeroOffsetStart, typeof(Int32));
var zeroOffsetEnd = entity.Media.ToList()[0].indices.ToList()[1];
Assert.IsInstanceOfType(zeroOffsetEnd, typeof(Int32));
Assert.IsTrue(QuickSubStringHelper(text, "http://t.co/qbJx26r", zeroOffsetStart, (zeroOffsetEnd - zeroOffsetStart)));
}