#!/usr/bin/env perl use strict; use warnings; use 5.014; use DateTime; use Test::More tests => 5; 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->warnstr, 'constructor with missing data has warnstr' ); $status = Travel::Status::DE::IRIS->new( iris_base => 'file:t/in', station => 'doesnotexist', datetime => DateTime->new( year => 2014, month => 1, day => 3, hour => 19, minute => 1, time_zone => 'Europe/Berlin' ) ); ok( defined $status->errstr, 'constructor with imaginary station 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' );