LINQ.Flickr 1.3
Just released another version of LINQ.Flickr. The release is out with several bug fixes, code optimization, new feature and overall mocking support. I have used Typemock for the unit test of the product. In coming posts, I will show how powerful mock can be in faking routine like upload photo. But, you can dig it right away, if you go by the release page and download a copy of the product. Truly speaking, testing was never fun for serviced API till mock engine is at my hand.
The release is not all about re-factoring and mocking , but now you can query, add , delete photo comment , query people and popular tags and do more that are mentioned in the release page.
Now, doing complex query is even more fun. lets take this.
var query = from photo in _context.Photos where photo.Id == photoId && photo.PhotoSize == PhotoSize.Medium select new FlickrPhoto { Id = photo.Id, Description = photo.Description, Title = photo.Title, Url = photo.Url, User = photo.User, Comments = ((from comment in _context.Photos.Comments where comment.PhotoId == photoId select new PhotoComment { Author = comment.Author, AuthorName = comment.AuthorName, PermaLink = comment.PermaLink, PhotoId = comment.PhotoId, Text = comment.Text, }).ToList<PhotoComment>()), Tags = photo.PhotoTags.Select(tag => tag.Title).ToArray<string>() };
FlickrPhoto newPhoto = query.Single();
The query is about getting the photo info for a specific photo id and I have now combined it with tags, comments to make it more useful. Also, few posts back, I have mentioned about using a RestToCollecitonBuilder to build an object on REST response, it is in action in this release as well.
Finally, don't forget the link and it's www.codeplex.com/linqflickr . In the end, this project is not about querying Flickr and getting photo out of it, but it could be a great learning tool for Mocking, for building custom LINQ provider (with LinqExtender) and other things that you might need to know like, how to define a service endpoint by interface.
Enjoy :-)