1package Test::SOAP::WSDL::Tester;
2use strict;
3use warnings;
4use Test::Class;
5use base qw(Test::Class);
6
7use File::Basename;
8use File::Spec;
9
10use Test::More;
11
12use Scalar::Util qw(blessed);
13
14our $HAS_TEST_WARN;
15
16BEGIN {
17    $HAS_TEST_WARN = eval { require Test::Warn; import Test::Warn; 1 };
18}
19
20sub has_test_warn {
21    return $HAS_TEST_WARN;
22}
23
24# object accessors
25sub set_object { $_[0]->{ object } = $_[1] }
26sub get_object { return shift->{ object } };
27# class accessors
28sub set_class { $_[0]->{ class } = $_[1] }
29sub get_class { return shift->{ class } };
30
31
32sub startup :Test(startup => 1) {
33    my $self = shift;
34    my $class = ref $self;
35    if ($class eq __PACKAGE__) {
36        ok __PACKAGE__;
37        return;
38    };
39    $class =~s{^Test::}{};
40    $self->set_class( $class );
41    use_ok $class;
42}
43
44sub t_url {
45    my $path = File::Spec->rel2abs( dirname __FILE__ );
46    my ($volume, $dir) = File::Spec->splitpath($path, 1);
47    my @dir_from = File::Spec->splitdir($dir);
48    unshift @dir_from, $volume if $volume;
49
50    my $url = 'file://' . join '/', @dir_from[0..$#dir_from - 4];
51    # die $url;
52    return $url;
53
54}
55
561;