From a063a07bd59144ece1ea2be5211f41f470e0c155 Mon Sep 17 00:00:00 2001 From: IvenBach Date: Thu, 11 Jan 2018 11:21:06 -0800 Subject: [PATCH] Unit tests --- .../DefTypeStatementInspectionTests.cs | 326 ++++++++++++++++++ RubberduckTests/RubberduckTests.csproj | 1 + 2 files changed, 327 insertions(+) create mode 100644 RubberduckTests/Inspections/DefTypeStatementInspectionTests.cs diff --git a/RubberduckTests/Inspections/DefTypeStatementInspectionTests.cs b/RubberduckTests/Inspections/DefTypeStatementInspectionTests.cs new file mode 100644 index 0000000000..30d4ed07f8 --- /dev/null +++ b/RubberduckTests/Inspections/DefTypeStatementInspectionTests.cs @@ -0,0 +1,326 @@ +using NUnit.Framework; +using Rubberduck.Parsing.Inspections.Resources; +using Rubberduck.Inspections.Concrete; +using RubberduckTests.Mocks; +using System.Threading; +using System.Linq; + +namespace RubberduckTests.Inspections +{ + [TestFixture] + public class DefTypeStatementInspectionTests + { + [Test] + [Category("Inspections")] + public void DefType_InspectionType() + { + var inspection = new DefTypeStatementInspection(null); + const CodeInspectionType expectedInspection = CodeInspectionType.LanguageOpportunities; + + Assert.AreEqual(expectedInspection, inspection.InspectionType); + } + + [Test] + [Category("Inspections")] + public void DefType_Bool() + { + const string inputCode = +@"DefBool A +Public Function aFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_Byte() + { + const string inputCode = +@"DefByte B +Public Function bFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_Integer() + { + const string inputCode = +@"DefInt C +Public Function cFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_Long() + { + const string inputCode = +@"DefLng D +Public Function dFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_Currency() + { + const string inputCode = +@"DefCur E +Public Function eFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_Single() + { + const string inputCode = +@"DefSng F +Public Function fFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_Double() + { + const string inputCode = +@"DefDbl G +Public Function gFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_Date() + { + const string inputCode = +@"DefDate H +Public Function hFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_String() + { + const string inputCode = +@"DefStr I +Public Function iFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_Object() + { + const string inputCode = +@"DefObj J +Public Function jFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_Variant() + { + const string inputCode = +@"DefVar K +Public Function kFoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(1, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_SingleResultIgnored() + { + const string inputCode = +@"'@Ignore DefTypeStatement +DefInt F +Public Function FunctionWontBeFoundInResult() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(0, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_AllDefTypeAreFound() + { + const string inputCode = +@"DefBool A +DefByte B +DefInt C +DefLng D +DefCur E +DefSng F +DefDbl G +DefDate H +DefStr I +DefObj J +DefVar K +Public Function Zoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(11, inspectionResults.Count()); + } + } + + [Test] + [Category("Inspections")] + public void DefType_AllDefTypeAreIgnored() + { + const string inputCode = +@"'@Ignore DefTypeStatement +DefBool A +DefByte B +DefInt C +DefLng D +DefCur E +DefSng F +DefDbl G +DefDate H +DefStr I +DefObj J +DefVar K +Public Function Zoo() +End Function"; + + var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); + using (var state = MockParser.CreateAndParse(vbe.Object)) + { + var inspection = new DefTypeStatementInspection(state); + var inspector = InspectionsHelper.GetInspector(inspection); + var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; + + Assert.AreEqual(0, inspectionResults.Count()); + } + } + + } +} \ No newline at end of file diff --git a/RubberduckTests/RubberduckTests.csproj b/RubberduckTests/RubberduckTests.csproj index d5e78319ec..1d4e9b8819 100644 --- a/RubberduckTests/RubberduckTests.csproj +++ b/RubberduckTests/RubberduckTests.csproj @@ -104,6 +104,7 @@ +