Catching up after the holidays.
[kakapo:kakapo.git] / t / UnitTest / Loader.nqp
1 # Copyright (C) 2010, Austin Hastings. See accompanying LICENSE file, or 
2 # http://www.opensource.org/licenses/artistic-license-2.0.php for license.
3
4 sub main() {
5         Test::UnitTest::Loader.suite.run;
6 }
7
8 module Kakapo {
9         # Tell the Kakapo runtime which library file to load.   
10         sub library_name()              { 'kakapo_test.pbc' }
11 }
12
13 class Test::UnitTest::Loader
14         is UnitTest::Testcase {
15         
16         INIT {
17                 use(    'P6metaclass' );                # has
18                 use(    'UnitTest::Testcase' ); # fail, etc.
19                 
20                 has(    '$!loader' );
21         }
22
23         method set_up() {
24                 self.loader(UnitTest::Loader.new);
25         }
26         
27         method test_load_tests_from_testcase() {
28                 my $suite := self.loader.load_tests_from_testcase(
29                         Test::UnitTest::Dummy
30                 );
31                 
32                 unless $suite.num_tests == 3 {
33                         fail("Expected 3 tests");
34                 }
35         }
36 }
37
38 class Test::UnitTest::Dummy
39         is UnitTest::Testcase {
40
41         method not_at_all()     { Exception.new("not a valid test").throw; }
42         method not_a_test()     { Exception.new("not a valid test").throw; }
43         method _test()          { Exception.new("not a valid test").throw; }
44         method _test_x()                { Exception.new("not a valid test").throw; }
45         method testall()                { Exception.new("not a valid test").throw; }
46         method test_all()               { 1; }
47         method testAll()                { 1; }
48         method test1()          { 1; }
49 }