#!perl use strict; use warnings; use Test::More tests => 31; use Weather::NWS::NDFDgenByDay; my $LAT = 42; my $LON = -88; my $START_DATE = scalar localtime; #now my @NUM_DAYS = 1..7; ## Create Object my $NDFDgenByDay = Weather::NWS::NDFDgenByDay->new(); ok($NDFDgenByDay, 'Object creation'); # Get Lists my @FORMATS = $NDFDgenByDay->get_available_formats(); ok(@FORMATS, 'Fetch format list'); ## Latitude and Longitude ok($NDFDgenByDay->set_latitude($LAT) == $LAT, 'Set latitude' ); ok($NDFDgenByDay->get_latitude() == $LAT, 'Get latitude' ); ok($NDFDgenByDay->set_longitude($LON) == $LON, 'Set longitude'); ok($NDFDgenByDay->get_longitude() == $LON, 'Get longitude'); ok($NDFDgenByDay->get_longitude() != $NDFDgenByDay->get_latitude(), 'Cross lat/lon' ); ## Formats for my $format (@FORMATS) { ok($NDFDgenByDay->set_format($format) eq $format, "Set $format format"); ok($NDFDgenByDay->get_format() eq $format, "Get $format format"); } eval { $NDFDgenByDay->set_format('Not A Format'); }; ok($@, "Set bogus format"); ## Start Date my $st; ok($st = $NDFDgenByDay->set_start_date($START_DATE), 'Set start date'); ok($NDFDgenByDay->get_start_date() eq $st , 'Get start date'); ## Number of Days for my $num (reverse @NUM_DAYS) { ok($num == $NDFDgenByDay->set_number_of_days($num), "Set $num days"); ok($NDFDgenByDay->get_number_of_days() == $num , "Set $num days"); } eval { $NDFDgenByDay->set_number_of_days(0); }; ok($@, 'Set too small of a day'); eval { $NDFDgenByDay->set_number_of_days(8); }; ok($@, 'Set too large of a day'); eval{ my $xml = $NDFDgenByDay->get_forecast_xml('Format'=>'Half-Day','Number of Days' => 2); }; ok(not($@), 'Fetch forecast');