summaryrefslogtreecommitdiff
path: root/t/30-iris-const.t
diff options
context:
space:
mode:
Diffstat (limited to 't/30-iris-const.t')
-rw-r--r--t/30-iris-const.t66
1 files changed, 66 insertions, 0 deletions
diff --git a/t/30-iris-const.t b/t/30-iris-const.t
new file mode 100644
index 0000000..e82b59c
--- /dev/null
+++ b/t/30-iris-const.t
@@ -0,0 +1,66 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use 5.014;
+
+use DateTime;
+use Test::More tests => 4;
+use Test::Fatal;
+
+use Travel::Status::DE::IRIS;
+
+my $status = Travel::Status::DE::IRIS->new(
+ iris_base => 'file:t/in',
+ station => 'EE',
+ datetime => DateTime->new(
+ year => 2014,
+ month => 1,
+ day => 3,
+ hour => 20,
+ minute => 1,
+ time_zone => 'Europe/Berlin'
+ )
+);
+
+is( $status->errstr, undef, 'constructor with data for everything' );
+
+$status = Travel::Status::DE::IRIS->new(
+ iris_base => 'file:t/in',
+ station => 'EE',
+ datetime => DateTime->new(
+ year => 2014,
+ month => 1,
+ day => 3,
+ hour => 19,
+ minute => 1,
+ time_zone => 'Europe/Berlin'
+ )
+);
+
+ok( defined $status->errstr, 'constructor with missing data has errstr' );
+
+$status = Travel::Status::DE::IRIS->new(
+ iris_base => 'file:t/in',
+ station => 'EBILP',
+ datetime => DateTime->new(
+ year => 2014,
+ month => 1,
+ day => 3,
+ hour => 20,
+ minute => 1,
+ time_zone => 'Europe/Berlin'
+ )
+);
+
+like(
+ $status->errstr,
+ qr{no associated timetable},
+ 'constructor with bad station has errstr'
+);
+
+ok(
+ exception {
+ $status = Travel::Status::DE::IRIS->new( iris_base => 'file:t/in' );
+ },
+ 'station parameter is mandatory -> code dies if missing'
+);