public async Task Browse_Defaults()
        {
            var postsRepository = new Mock <IPostsRepository>(MockBehavior.Strict);

            postsRepository
            .Setup(mock => mock.BrowsePostsAsync(PostSortBy.Created, PostSortDirection.Down, PostedSince.Forever, 0, 16, null, null, null, It.Is <DateTimeOffset>(d => d <= DateTimeOffset.UtcNow)))
            .ReturnsAsync(new[]
            {
                new Post
                {
                    Id      = Guid.Parse("9495ee61-37ac-43cf-8ee0-dbcd18510914"),
                    Title   = "My Scene",
                    Version = 4,
                    Author  = new User {
                        Username = "******"
                    },
                    Tags = new[]
                    {
                        new PostTag {
                            Tag = new Tag {
                                Id = Guid.Parse("c2fa02b7-b107-4261-8306-9465178f2949"), Name = "artsy"
                            }
                        }
                    }
                }
            });
            var cache      = SetupCaching("posts:browse:(Created;Down;Default;0;16)");
            var controller = new PostsController(postsRepository.Object, cache.Object);

            var result = await controller.BrowseAsync();

            result.ShouldDeepEqual(new[]
            {
                new PostViewModel
                {
                    Id      = "9495ee61-37ac-43cf-8ee0-dbcd18510914",
                    Title   = "My Scene",
                    Version = 4,
                    Author  = new UserViewModel {
                        Username = "******"
                    },
                    Tags = new[] { new TagViewModel {
                                       Name = "artsy"
                                   } }
                }
            });
        }