AnyEvent-SparkBot

 view release on metacpan or  search on metacpan

t/AnyEvent-HTTP-Spark.t  view on Meta::CPAN

use Modern::Perl;
use Log::LogMethods::Log4perlLogToString;
use Carp qw(confess);
use Data::Dumper;
use JSON qw(to_json from_json);
#BEGIN { $SIG{__DIE__} = sub { confess @_ }; }
use Test::More qw(no_plan);

my $class='AnyEvent::HTTP::Spark';
require_ok($class);
use_ok($class);

my $string;
my $logger=LoggerToString($class,$string);
my $token=exists $ENV{SPARK_TOKEN} ? $ENV{SPARK_TOKEN} : 'this is not a valid token';
my $self=$class->new(logger=>$logger,token=>$token,retryCount=>2);
isa_ok($self,$class);
{
  my $result=$self->build_post_json('test',{qw(test data)});
  ok($result,'Should have buid the request without any issues');
  my $post=$result->get_data;

  cmp_ok($post->uri,'eq',$self->api_url.'test','Should have generated the correct url');
  cmp_ok($post->content,'eq',to_json({qw(test data)}),'make sure our json serialization works');
  cmp_ok($post->method,'eq','POST','Should have a valid post object') or die;
}
{
  my $result=$self->build_put_json('test',{qw(test data)});
  ok($result,'Should have buid the request without any issues');
  my $post=$result->get_data;

  cmp_ok($post->uri,'eq',$self->api_url.'test','Should have generated the correct url');
  cmp_ok($post->content,'eq',to_json({qw(test data)}),'make sure our json serialization works');
  cmp_ok($post->method,'eq','PUT','Should have a valid post object') or die;
}
{
  my $result=$self->build_post_form('test',{qw(test data)});
  ok($result,'Should have buid the request without any issues');
  my $post=$result->get_data;
  cmp_ok($post->method,'eq','POST','Should have a valid post object') or die;

  cmp_ok($post->uri,'eq',$self->api_url.'test','Should have generated the correct url');
  diag $post->as_string;
}
{
  my $result=$self->build_get('test',{qw(test data)});
  ok($result,'Should have buid the request without any issues');
  my $post=$result->get_data;
  cmp_ok($post->method,'eq','GET','Should have a valid GET object');

  cmp_ok($post->uri,'eq',$self->api_url.'test?test=data','Should have generated the correct url');
  diag $post->as_string;
}

{
  my $result=$self->build_head('test',{qw(test data)});
  ok($result,'Should have buid the request without any issues');
  my $post=$result->get_data;
  cmp_ok($post->method,'eq','HEAD','Should have a valid GET object');

  cmp_ok($post->uri,'eq',$self->api_url.'test?test=data','Should have generated the correct url');
  diag $post->as_string;
}
{
  my $result=$self->build_delete('test',{qw(test data)});
  ok($result,'Should have buid the request without any issues');
  my $post=$result->get_data;
  cmp_ok($post->method,'eq','DELETE','Should have a valid DELETE object');

  cmp_ok($post->uri,'eq',$self->api_url.'test?test=data','Should have generated the correct url');
  diag $post->as_string;
}
{
  my ($id,$result,$request,$response);
  my $cb=sub {
    ($self,$id,$result,$request,$response)=@_;
  };

  $self->handle_delete($cb,1,$self->new_false("Should be false"),HTTP::Request->new(DELETE=>'http://blah'),HTTP::Response->new(204,'looks good'));
  ok($result,'delete pass, result object should be true') or die "Should pass this test";
  $self->handle_delete($cb,1,$self->new_false("Should be false"),HTTP::Request->new(DELETE=>'http://blah'),HTTP::Response->new(200,'Should fail'));
  ok(!$result,'delete fail, result object should be false') or die diag Dumper($result);
}

SKIP: {
  skip 'ENV Vars [SPARK_TOKEN, RUN_HTTP_TESTS,TEST_EMAIL] Not set',1 unless $ENV{SPARK_TOKEN} and $ENV{RUN_HTTP_TESTS} and $ENV{TEST_EMAIL};
  my $result=$self->listPeople({email=>$ENV{TEST_EMAIL}});
  ok($result,'Should get an email address') or diag(Dumper $result);
  #diag(Dumper($result->get_data));
  sleep 1;
}

SKIP: {
  skip 'ENV Vars [SPARK_TOKEN, RUN_HTTP_TESTS,TEST_USER] Not set',1 unless $ENV{SPARK_TOKEN} and $ENV{RUN_HTTP_TESTS} and $ENV{TEST_USER};



( run in 0.787 second using v1.01-cache-2.11-cpan-39bf76dae61 )