use Test::Roo;

use Weather::OpenWeatherMap::Request;

has request_obj => (
  is        => 'ro',
  builder   => sub {
    Weather::OpenWeatherMap::Request->new_for(
      Current =>
        api_key  => 'abcd',
        tag      => 'foo',
        location => 'Manchester, NH',
    )
  },
);

has request_obj_bycoord => (
  is        => 'ro',
  builder   => sub {
    Weather::OpenWeatherMap::Request->new_for(
      Current =>
        api_key  => 'abcd',
        tag      => 'foo',
        location => 'lat 42, long 24',
    )
  },
);

has request_obj_bycode => (
  is        => 'ro',
  builder   => sub {
    Weather::OpenWeatherMap::Request->new_for(
      Current =>
        api_key  => 'abcd',
        tag      => 'foo',
        location => 5089178,
    )
  },
);


use lib 't/inc';
with 'Testing::Request::Current';
run_me;

{ my $warning;
  local $SIG{__WARN__} = sub {
    $warning = shift
  };
  my $req = Weather::OpenWeatherMap::Request->new_for(
    Current =>
      location => 'Manchester, NH',
  );
  fail "new Request without api_key should have warned"
    unless $warning;
  like $warning, qr/api_key/, "Request without api_key warned ok";
}


done_testing