|
2 | 2 | using System.Collections.Generic;
|
3 | 3 | using System.Linq;
|
4 | 4 | using System.Threading;
|
5 |
| -using System.Windows.Controls; |
6 | 5 | using NUnit.Framework;
|
7 | 6 | using Rubberduck.Parsing.Symbols;
|
8 | 7 | using Rubberduck.Parsing.VBA;
|
9 | 8 | using RubberduckTests.Mocks;
|
10 | 9 | using Rubberduck.Parsing.Annotations;
|
11 |
| -using Rubberduck.Parsing.VBA.Extensions; |
12 | 10 | using Rubberduck.VBEditor;
|
13 | 11 | using Rubberduck.VBEditor.SafeComWrappers;
|
14 | 12 | using Rubberduck.VBEditor.SafeComWrappers.Abstract;
|
@@ -6713,5 +6711,79 @@ End Function
|
6713 | 6711 | Assert.IsFalse(failedAccesses.Any());
|
6714 | 6712 | }
|
6715 | 6713 | }
|
| 6714 | + |
| 6715 | + [Category("Grammar")] |
| 6716 | + [Category("Resolver")] |
| 6717 | + [Test] |
| 6718 | + public void AssertWithoutDebug_NoReferenceToDebugAssert() |
| 6719 | + { |
| 6720 | + var classCode = @" |
| 6721 | +Public Function Foo(index As Variant) As Class1 |
| 6722 | + Assert |
| 6723 | +End Function |
| 6724 | +"; |
| 6725 | + |
| 6726 | + var moduleCode = $@" |
| 6727 | +Private Function Test() As Variant |
| 6728 | + Assert |
| 6729 | +End Function |
| 6730 | +"; |
| 6731 | + |
| 6732 | + var vbe = new MockVbeBuilder() |
| 6733 | + .ProjectBuilder("TestProject", ProjectProtection.Unprotected) |
| 6734 | + .AddComponent("Class1", ComponentType.ClassModule, classCode) |
| 6735 | + .AddComponent("Module1", ComponentType.StandardModule, moduleCode) |
| 6736 | + .AddReference("VBA", MockVbeBuilder.LibraryPathVBA, 4, 2, true) |
| 6737 | + .AddProjectToVbeBuilder() |
| 6738 | + .Build(); |
| 6739 | + |
| 6740 | + using (var state = Resolve(vbe.Object)) |
| 6741 | + { |
| 6742 | + var debugAssertDeclaration = state.DeclarationFinder |
| 6743 | + .BuiltInDeclarations(DeclarationType.Procedure) |
| 6744 | + .Single(declaration => declaration.IdentifierName.Equals("Assert") |
| 6745 | + && declaration.QualifiedModuleName.ComponentName.Equals("Debug")); |
| 6746 | + var debugAssertReferences = debugAssertDeclaration.References; |
| 6747 | + |
| 6748 | + Assert.IsFalse(debugAssertReferences.Any()); |
| 6749 | + } |
| 6750 | + } |
| 6751 | + |
| 6752 | + [Category("Grammar")] |
| 6753 | + [Category("Resolver")] |
| 6754 | + [Test] |
| 6755 | + public void AssertWithDebug_ReferenceToDebugAssert() |
| 6756 | + { |
| 6757 | + var classCode = @" |
| 6758 | +Public Function Foo(index As Variant) As Class1 |
| 6759 | + Debug.Assert False |
| 6760 | +End Function |
| 6761 | +"; |
| 6762 | + |
| 6763 | + var moduleCode = $@" |
| 6764 | +Private Function Test() As Variant |
| 6765 | + Debug.Assert False |
| 6766 | +End Function |
| 6767 | +"; |
| 6768 | + |
| 6769 | + var vbe = new MockVbeBuilder() |
| 6770 | + .ProjectBuilder("TestProject", ProjectProtection.Unprotected) |
| 6771 | + .AddComponent("Class1", ComponentType.ClassModule, classCode) |
| 6772 | + .AddComponent("Module1", ComponentType.StandardModule, moduleCode) |
| 6773 | + .AddReference("VBA", MockVbeBuilder.LibraryPathVBA, 4, 2, true) |
| 6774 | + .AddProjectToVbeBuilder() |
| 6775 | + .Build(); |
| 6776 | + |
| 6777 | + using (var state = Resolve(vbe.Object)) |
| 6778 | + { |
| 6779 | + var debugAssertDeclaration = state.DeclarationFinder |
| 6780 | + .BuiltInDeclarations(DeclarationType.Procedure) |
| 6781 | + .Single(declaration => declaration.IdentifierName.Equals("Assert") |
| 6782 | + && declaration.QualifiedModuleName.ComponentName.Equals("Debug")); |
| 6783 | + var debugAssertReferences = debugAssertDeclaration.References; |
| 6784 | + |
| 6785 | + Assert.AreEqual(2, debugAssertReferences.Count()); |
| 6786 | + } |
| 6787 | + } |
6716 | 6788 | }
|
6717 | 6789 | }
|
0 commit comments