public ContentTreeNodeDisplayViewModel BuildViewModel(string rawUrl, RouteData routeData, string currentAction)
        {
            var nodeSegments = ScrubUrlAndReturnEnumerableOfNodeSegments(rawUrl);

            var workingTreeNodeId = GetTreeNodeIdFromTreeNodeSummaryContextUsingNodeSegments(nodeSegments);

            var viewModel = new ContentTreeNodeDisplayViewModel()
                   	{
                   		Body = string.Empty,
                        Header = string.Empty,
                   	};
            if (string.IsNullOrEmpty(workingTreeNodeId)) return viewModel;

            var action = currentAction; //GetAction(routeData);
            //var parentRouteData = getParentRouteDataDictionaryFromChildActionRouteData.GetRouteValues(routeData);

            var contentTreeNodes = contentTreeNodeContext.GetContentTreeNodesByTreeId(workingTreeNodeId).Where(a => a.Action == action);
            if (contentTreeNodes.Count() == 0) return viewModel;

            return (from item in contentTreeNodes
                   select new ContentTreeNodeDisplayViewModel
                          	{
                                Body = item.Body,
                                Header = item.HeaderText,
                                HeaderImage = item.HeaderImage,
                          	}).FirstOrDefault();
        }
        public void Returns_view_model_from_viewModelBuilder()
        {
            var expectedViewModel = new ContentTreeNodeDisplayViewModel()
                                        {
                                            Header = "Header",
                                        };
            mocker.GetMock<IContentTreeNodeDisplayViewModelBuilder>().Setup(a => a.BuildViewModel("treeNodeId", "actionId"))
                .Returns(expectedViewModel);

            var result = (ContentTreeNodeDisplayViewModel) ((PartialViewResult) mocker.Resolve<ContentTreeController>().Display("treeNodeId", "actionId")).ViewData.Model;

            Assert.AreEqual(expectedViewModel, result);
        }
        public void Returns_view_model_from_viewModelBuilder()
        {
            mocker.GetMock<IRawUrlGetter>().Setup(a => a.GetRawUrl()).Returns("url");
            var expectedViewModel = new ContentTreeNodeDisplayViewModel()
                                        {
                                            Header = "Header",
                                        };
            mocker.GetMock<IContentTreeNodeDisplayViewModelBuilder>().Setup(a => a.BuildViewModel("url", It.IsAny<RouteData>(), It.IsAny<string>()))
                .Returns(expectedViewModel);

            var result = (ContentTreeNodeDisplayViewModel) ((ViewResult) mocker.Resolve<ContentTreeNodeController>().Display("controller", "action")).ViewData.Model;

            Assert.AreEqual(expectedViewModel, result);
        }