1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
#!/usr/bin/perl
use strict;
use warnings;
use Test::More qw/no_plan/;
use lib 't/lib';
use Socialtext::Resting::Mock;
BEGIN {
use lib 'lib';
use_ok 'Socialtext::WikiObject::TestPlan';
use_ok 'Socialtext::WikiFixture::Null', 'get_num_calls';
}
Basic_plan: {
testplan_ok(
num => 2,
plan_content => <<EOT,
* Fixture: Null
| Foo |
| bar |
| |
EOT
);
}
Recursive_plan: {
testplan_ok(
num => 2,
plan_content => <<EOT,
* [Plan1]
* Wah-wah
* [Plan2]
EOT
pages => {
'Plan1' => "* Fixture: Null\n| foo |\n",
'Plan2' => "* Fixture: Null\n| foo |\n",
},
);
}
Recursive_plan_with_default_fixture: {
testplan_ok(
num => 2,
plan_content => <<EOT,
* [Plan1]
* Wah-wah
* [Plan2]
EOT
pages => {
'Plan1' => "* Fixture: Null\n| bar |\n",
'Plan2' => "* Fixture: Null\n| foo |\n",
},
tp_args => { default_fixture => 'Null' },
);
}
Default_fixture: {
testplan_ok(
num => 2,
plan_content => <<EOT,
| Foo |
| bar |
EOT
tp_args => { default_fixture => 'Null' },
);
}
No_fixture: {
testplan_ok(
num => 0,
plan_content => <<EOT,
| Foo |
| bar |
EOT
);
}
Invalid_fixture: {
testplan_ok(
should_die => 1,
plan_content => <<EOT,
* Fixture: Monkey
| Foo |
| bar |
EOT
);
}
sub testplan_ok {
my %args = @_;
my $rester = Socialtext::Resting::Mock->new;
$rester->put_page('Test Plan' => $args{plan_content});
for my $p (keys %{ $args{pages} }) {
$rester->put_page($p, $args{pages}{$p});
}
my %tp_args = (
rester => $rester,
page => 'Test Plan',
%{ $args{tp_args} || {} },
);
my $plan = Socialtext::WikiObject::TestPlan->new(
%tp_args,
fixture_args => {
server => 'http://server',
workspace => 'foo',
},
);
if ($args{should_die}) {
eval { $plan->run_tests };
ok $@;
}
else {
$plan->run_tests;
is get_num_calls(), $args{num};
}
}
|