|
| 1 | +using System; |
1 | 2 | using System.Collections.Generic;
|
2 | 3 | using System.Linq;
|
| 4 | +using System.Threading; |
3 | 5 | using System.Windows.Forms;
|
4 | 6 | using NUnit.Framework;
|
5 | 7 | using Moq;
|
6 | 8 | using Rubberduck.Navigation.CodeExplorer;
|
7 | 9 | using Rubberduck.VBEditor.SafeComWrappers;
|
8 | 10 | using Rubberduck.Interaction;
|
| 11 | +using Rubberduck.Parsing.UIContext; |
| 12 | +using Rubberduck.Parsing.VBA; |
| 13 | +using Rubberduck.UI.CodeExplorer.Commands; |
| 14 | +using Rubberduck.UI.Command; |
| 15 | +using RubberduckTests.Mocks; |
| 16 | +using MessageBox = System.Windows.MessageBox; |
9 | 17 |
|
10 | 18 | namespace RubberduckTests.CodeExplorer
|
11 | 19 | {
|
@@ -838,5 +846,28 @@ public void CollapseAllNodes_StartingWithSubNode()
|
838 | 846 | Assert.IsFalse(GetNodeExpandedStates(collapsed).All(state => state));
|
839 | 847 | }
|
840 | 848 | }
|
| 849 | + |
| 850 | + [Category("Code Explorer")] |
| 851 | + [Test] |
| 852 | + public void UnparsedSetToTrue_NoProjects() |
| 853 | + { |
| 854 | + var builder = new MockVbeBuilder(); |
| 855 | + var vbe = builder.Build(); |
| 856 | + var parser = MockParser.Create(vbe.Object, null, MockVbeEvents.CreateMockVbeEvents(vbe)); |
| 857 | + var state = parser.State; |
| 858 | + var dispatcher = new Mock<IUiDispatcher>(); |
| 859 | + |
| 860 | + dispatcher.Setup(m => m.Invoke(It.IsAny<Action>())).Callback((Action argument) => argument.Invoke()); |
| 861 | + |
| 862 | + var viewModel = new CodeExplorerViewModel(state, null, null, null, dispatcher.Object, vbe.Object, null, new CodeExplorerSyncProvider(vbe.Object, state)); |
| 863 | + |
| 864 | + parser.Parse(new CancellationTokenSource()); |
| 865 | + if (parser.State.Status >= ParserState.Error) |
| 866 | + { |
| 867 | + Assert.Inconclusive("Parser Error"); |
| 868 | + } |
| 869 | + |
| 870 | + Assert.IsTrue(viewModel.Unparsed); |
| 871 | + } |
841 | 872 | }
|
842 | 873 | }
|
0 commit comments