Dev2.Core.Tests.NavigationViewModelTest.BuildExplorerItems C# (CSharp) Method

BuildExplorerItems() private method

private BuildExplorerItems ( IResourceRepository resourceRepository, bool mockClone = true ) : IStudioResourceRepository
resourceRepository IResourceRepository
mockClone bool
return IStudioResourceRepository
        IStudioResourceRepository BuildExplorerItems(IResourceRepository resourceRepository,bool mockClone = true)
        {
            var resourceModels = resourceRepository.All();
            var localhostItemModel = new ExplorerItemModel(new Mock<IConnectControlSingleton>().Object, new Mock<IStudioResourceRepository>().Object) { DisplayName = "localhost", EnvironmentId = Guid.Empty, ResourceType = Common.Interfaces.Data.ResourceType.Server };

            if(resourceModels != null)
            {
                foreach(var resourceModel in resourceModels)
                {
                    var resourceItemModel = new ExplorerItemModel(new Mock<IConnectControlSingleton>().Object, new Mock<IStudioResourceRepository>().Object) { ResourceId = resourceModel.ID, ResourcePath = resourceModel.Category, EnvironmentId = Guid.Empty, DisplayName = resourceModel.ResourceName };
                    Common.Interfaces.Data.ResourceType correctTyping = Common.Interfaces.Data.ResourceType.WorkflowService;
                    switch(resourceModel.ResourceType)
                    {
                        case ResourceType.WorkflowService:
                            correctTyping = Common.Interfaces.Data.ResourceType.WorkflowService;
                            break;
                        case ResourceType.Service:
                            correctTyping = Common.Interfaces.Data.ResourceType.DbService;
                            break;
                        case ResourceType.Source:
                            correctTyping = Common.Interfaces.Data.ResourceType.WebSource;
                            break;
                    }
                    resourceItemModel.ResourceType = correctTyping;

                    var categoryItem = localhostItemModel.Children.FirstOrDefault(model => model.DisplayName == resourceModel.Category);
                    if(categoryItem == null)
                    {
                        categoryItem = new ExplorerItemModel(new Mock<IConnectControlSingleton>().Object, new Mock<IStudioResourceRepository>().Object) { Parent = localhostItemModel, DisplayName = resourceModel.Category, EnvironmentId = Guid.Empty, ResourceType = Common.Interfaces.Data.ResourceType.Folder, ResourcePath = "" };
                        localhostItemModel.Children.Add(categoryItem);
                    }
                    resourceItemModel.Parent = categoryItem;
                    categoryItem.Children.Add(resourceItemModel);
                }
            }
            var studioResourceRepository = new StudioResourceRepository(localhostItemModel, _Invoke);
            if (mockClone)
            studioResourceRepository.ExplorerItemModelClone = a => a;
            else
            studioResourceRepository.ExplorerItemModelClone = a => a.Clone( new Mock<IConnectControlSingleton>().Object,studioResourceRepository);
            var explorerResourceRepository = new Mock<IClientExplorerResourceRepository>().Object;
            studioResourceRepository.GetExplorerProxy = guid => explorerResourceRepository;
            return studioResourceRepository;
        }
NavigationViewModelTest