public void ShouldSetHierarchyNodeOnView()
        {
            var mockView = new MockSolutionPickerView();
            var presenter = new SolutionPickerPresenter(new MockHierarchyNode(), mockView, new MockHierarchyNode());

            Assert.IsNotNull(mockView.RootHierarchyNode);
        }
        public void ShouldInitialCanExitFalse()
        {
            var mockView = new MockSolutionPickerView();

            var presenter = new SolutionPickerPresenter(new MockHierarchyNode(), mockView, new MockHierarchyNode());

            Assert.IsFalse(mockView.CanExit);
        }
        public void ShouldNotExitIfSelectedHierachyIsSameAsTarget()
        {
            var mockView = new MockSolutionPickerView();
            var childProjectNode = new MockHierarchyNode() { TypeGuid = new Guid(VSLangProj.PrjKind.prjKindCSharpProject) };

            var presenter = new SolutionPickerPresenter(new MockHierarchyNode(), mockView, childProjectNode);

            mockView.CanExit = true;

            mockView.SelectedNode = childProjectNode;
            mockView.FireSelectedNodeChanged();

            Assert.IsFalse(mockView.CanExit);
        }
        public void ShouldSetViewToCanExitIfProjectNodeSelected()
        {
            var mockView = new MockSolutionPickerView();
            var childProjectNode = new MockHierarchyNode() { TypeGuid = new Guid(VSLangProj.PrjKind.prjKindCSharpProject) };
            var targetProjectNode = new MockHierarchyNode() { TypeGuid = new Guid(VSLangProj.PrjKind.prjKindCSharpProject) };

            var presenter = new SolutionPickerPresenter(new MockHierarchyNode(), mockView, targetProjectNode);

            mockView.CanExit = false;

            mockView.SelectedNode = childProjectNode;
            mockView.FireSelectedNodeChanged();

            Assert.IsTrue(mockView.CanExit);
        }