Cpanel-iContact-Provider-Local.t 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. use strict;
  2. use warnings;
  3. use Cwd qw{abs_path};
  4. use File::Basename qw{dirname};
  5. use lib abs_path( dirname(__FILE__) . "/../lib" );
  6. use Test::More;
  7. use Test::Fatal;
  8. use File::Temp ();
  9. use Cpanel::iContact::Provider::Local ();
  10. plan tests => 1;
  11. # First, let's mock out the parent, and other stuff we wouldn't wanna do in a unit test
  12. subtest "Provider bits work as expected ('unit' test)" => sub {
  13. # Create tempdir for jamming stuff into
  14. my $tmp_obj = File::Temp->newdir();
  15. my $tmp_dir = $tmp_obj->dirname;
  16. $Cpanel::iContact::Provider::Local::DIR = "$tmp_dir/iContact_notices";
  17. # Make the notice send
  18. isa_ok( my $spammer = Cpanel::iContact::Provider::Local->new(), "Cpanel::iContact::Provider::Local" );
  19. my $ex = exception { $spammer->send() };
  20. is( $ex, undef, "send doesn't throw on GreatSuccess" ) || diag explain $ex;
  21. my $user = getpwuid($<);
  22. my @files = glob( "$tmp_dir/iContact_notices/$user/*.txt" );
  23. ok( scalar(@files), "Looks like a file was written..." ) || diag explain \@files;
  24. # Thu-Dec-20-13:46:46-2018
  25. like( $files[0], qr/[A-Z][a-z]{2}-[A-Z][a-z]{2}-\d{2}-\d{2}:\d{2}:\d{2}-\d{4}\.txt/, "..and it looks like we'd expect it to" ) || diag explain \@files;
  26. #diag `cat $files[0]`;
  27. };