Question: As the title, the code itself as following

```
internal static class ThumbnailPresentationLogic
    {
        public static string GetThumbnailUrl(List<Image> images)
        {
            if (images == null || images.FirstOrDefault() == null)
            {
                return ImageRetrievalConfiguration.MiniDefaultImageFullUrl;
            }

            Image latestImage = (from image in images
                                 orderby image.CreatedDate descending
                                 select image).First();

            Uri fullUrl;

            return 
                Uri.TryCreate(new Uri(ImageRetrievalConfiguration.GetConfig().ImageRepositoryName), latestImage.FileName,
                    out fullUrl)
                    ? fullUrl.AbsoluteUri
                    : ImageRetrievalConfiguration.MiniDefaultImageFullUrl;
        }
    }

```

I don't want the unit test go through any methods in `ImageRetrievalConfiguration` class, so how can I mock `ImageRetrievalConfiguration` and pass it into `ThumbnailPresentationLogic` class ??

Answer: 
How about you split the method into two - one of which takes a "base URI" and "default Url" and one of which doesn't:

```
internal static class ThumbnailPresentationLogic
{
    public static string GetThumbnailUrl(List<Image> images)
    {
        return GetThumbnailUrl(images,
           new Uri(ImageRetrievalConfiguration.GetConfig().ImageRepositoryName),
           ImageRetrievalConfiguration.MiniDefaultImageFullUrl);
    }

    public static string GetThumbnailUrl(List<Image> images, Uri baseUri,
        string defaultImageFullUrl)
    {
        if (images == null || images.FirstOrDefault() == null)
        {
            return defaultImageFullUrl;
        }

        Image latestImage = (from image in images
                             orderby image.CreatedDate descending
                             select image).First();

        Uri fullUrl;

        return 
            Uri.TryCreate(baseUri, latestImage.FileName, out fullUrl)
                ? fullUrl.AbsoluteUri
                : defaultImageFullUrl;
    }
}

```

Then you can test the logic in the "three-parameter" overload, but the public method doesn't really contain any logic. You won't get 100% coverage, but you'll be able to test the real *logic* involved.
You can't do this with Moq, because you would need to intercept the call to the methods of this static class and that is something all "normal" mocking frameworks can't achieve, because they are working purely with type inheritance, automatic code generation and stuff like that.  

Intercepting a call to a static method however needs other mechanisms.  

Intercepting calls to .NET framework static classes can be done using [Moles](http://research.microsoft.com/en-us/projects/pex/). I am not sure if it works with your own static classes though.  

[TypeMock Isolator](http://www.typemock.com/isolator-product-page-a) works with all static classes but it is not free. 

However, I really think, you should reconsider your architecture instead.