133 lines
5.4 KiB
Text
133 lines
5.4 KiB
Text
' Gambas test file
|
|
|
|
'' P
|
|
|
|
Public Sub ParseTestCommands()
|
|
|
|
Dim sCommand As String
|
|
Dim Commands As TestCommand[]
|
|
Dim sGot As String
|
|
Dim iGot As Integer
|
|
|
|
Test.Plan(9)
|
|
|
|
'Three TestModules
|
|
sCommand = "Bing, Bong, Bung"
|
|
Commands = TestCommand.FromString(sCommand)
|
|
sGot = Commands[0].ModuleName & Commands[1].ModuleName & Commands[2].ModuleName
|
|
|
|
Assert.Equals(sGot, "BingBongBung", "FromString: Three testmodules")
|
|
|
|
'Test testmodules sort
|
|
sCommand = "Bing,Bung,Bong"
|
|
Commands = TestCommand.FromString(sCommand)
|
|
sGot = Commands[0].ModuleName & Commands[1].ModuleName & Commands[2].ModuleName
|
|
|
|
Assert.Equals(sGot, "BingBongBung", "FromString: Testmodules have to be sorted")
|
|
|
|
'Three testmodules, one with three methods
|
|
sCommand = "Bong.B, Bing, Bong.A, Bung, Bong.C"
|
|
Commands = TestCommand.FromString(sCommand)
|
|
sGot = Commands[0].ModuleName & Commands[1].ModuleName & Commands[2].ModuleName
|
|
Assert.Equals(sGot, "BingBongBung", "FromString: Three testmodules, one with three methods")
|
|
|
|
'Methods name sort
|
|
sGot = Commands[1].Methods.Join()
|
|
Assert.Equals(sGot, "A,B,C", "FromString: Methods name sort")
|
|
|
|
'Three testmodules, one with methods, but Bong also wanted all, the more greedy one has to get it
|
|
sCommand = "Bong, Bing, Bong.A, Bung, Bong.B, Bong.C"
|
|
Commands = TestCommand.FromString(sCommand)
|
|
'Methods name sort
|
|
iGot = Commands[1].Methods.Count
|
|
Assert.Equals(iGot, 0, "FromString: Greedy testmodule Bong")
|
|
|
|
'Programmer was a little tipsy but got it all except Bung which only wants testmethod U
|
|
sCommand = "Bong, Bong.A, Bing, Bing, Bing, Bing, Bing, Bing, Bong.A, Bung.U, Bong.B, Bong.C, Bing, Bing, Bing, Bong, Bong"
|
|
Commands = TestCommand.FromString(sCommand)
|
|
'Methods name sort
|
|
iGot = Commands[0].Methods.Count
|
|
Assert.Equals(iGot, 0, "FromString: Tipsy programmer 1")
|
|
|
|
iGot = Commands[1].Methods.Count
|
|
Assert.Equals(iGot, 0, "FromString: Tipsy programmer 2")
|
|
|
|
iGot = Commands[2].Methods.Count
|
|
Assert.Equals(iGot, 1, "FromString: Tipsy programmer 3")
|
|
|
|
sGot = Commands[2].Methods[0]
|
|
Assert.Equals(sGot, "U", "FromString: Tipsy programmer 4")
|
|
|
|
End
|
|
|
|
Public Sub CommandsToString()
|
|
|
|
Dim Commands As TestCommand[]
|
|
|
|
Commands = TestCommand.FromString("Bong, Bong.A, Bing, Bing, Bing, Bing, Bing, Bing, Bong.A, Bung.U, Bong.B, Bong.C, Bing, Bing, Bing, Bong, Bong")
|
|
Assert.Equals(TestCommand.ToString(Commands), "Bing,Bong,Bung.U")
|
|
|
|
End
|
|
|
|
'' Tests the ability to return all tests
|
|
'' in the project as a collection
|
|
|
|
Public Sub ReflectTest()
|
|
|
|
Dim tests As Collection
|
|
|
|
Test.Plan(7)
|
|
|
|
tests = Test.AllTestsCollection()
|
|
|
|
'count of all testmodules, if it fails we created a new one and we have to count new
|
|
Assert.Equals(tests.Count, 11, "number of all testmodules")
|
|
|
|
'count of all testmethods, if it fails we created a new one and we have to count new
|
|
Assert.Equals(tests["TestAllAsserts"].Count, 13, "count of all testmethods in TestAllAsserts")
|
|
Assert.Equals(tests["TestBailout"].Count, 1, "count of all testmethods in TestBailout")
|
|
Assert.Equals(tests["TestCrashes"].Count, 2, "count of all testmethods in TestCrashes")
|
|
Assert.Equals(tests["TestElse"].Count, 3, "count of all testmethods in TestElse")
|
|
Assert.Equals(tests["TestEmpty"].Count, 0, "count of all testmethods in TestEmpty")
|
|
Assert.Equals(tests["TestInternals"].Count, 5, "count of all testmethods in TestInternals")
|
|
|
|
End
|
|
|
|
'' test the ability to create a testsuite string with my own tests
|
|
Public Sub ReflectTestsString()
|
|
|
|
Dim easy As String = Test.AllTests()
|
|
Dim got, want As String
|
|
|
|
' These have to be adjusted when tests change
|
|
' If tests are updated, get them with
|
|
' Dim cheese As String = Test.AllTests()
|
|
|
|
want = "TestAllAsserts.TestAssert;TestAssertEmpty;TestAssertEqualsDate;TestAssertEqualsFloat;TestAssertEqualsLong;TestAssertEqualsObject;TestAssertEqualsString;TestAssertError;TestAssertErrorCode;TestAssertNotNull;TestLike;TestNote;TestTodoErrorCode,TestBailout.TestBailout,TestCrashes.TestDoACrash;TestErrorTwo,TestElse.TestNoMessage;TestNoMessageInbetween;TestNote,TestError.TestError,TestFailures.TestEqualsFailure;TestError;TestLongFailure;TestLongTypeMismatchFailure;TestStringFailure,TestInternals.CommandsToString;InterpreterInterface;ParseTestCommands;ReflectTest;ReflectTestsString,TestSetup.NameOfMethodDoesNotStartWithTest;TestFirst,TestSummary.DoOneFailure;DoSkip;DoSomeAsserts;DoTodo,TestWrongPlan.IHaveAWrongPlan"
|
|
got = Test.AllTests()
|
|
Assert.Equals(got, want, "All Test names as string")
|
|
|
|
want = Test.AllTests()
|
|
got = TestCommand.ToString(TestCommand.FromString(want))
|
|
|
|
Assert.Equals(got, want, "Check that Testcommand To and Fromstring do it the same way as Test.AllTests")
|
|
|
|
End
|
|
|
|
Public Sub InterpreterInterface()
|
|
|
|
Dim Commands As TestCommand[]
|
|
Dim Tests As String = "TestAllAsserts.TestAssertEqualsDate;TestAssertEmpty;TestAssert,TestElse"
|
|
|
|
Test.Note("Tests the testsuite as string as it is run by the interpreter")
|
|
|
|
Commands = TestCommand.FromString(Tests)
|
|
|
|
Assert.Equals(Commands.Count, 2, "we have 2 commands")
|
|
Assert.Equals(Commands[0].Methods.Count, 3, "command 2 has 3 methods")
|
|
Assert.Equals(Commands[0].Methods[0], "TestAssert", "methods were sorted")
|
|
|
|
Tests = "TestAllAsserts.TestAssert;TestAssertEmpty;TestAssertEqualsDate,TestElse"
|
|
Assert.Equals(TestCommand.ToString(Commands), Tests, "commands as string defining a testsuite")
|
|
|
|
End
|