Cpanel-iContact-Provider-Local.t 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  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 @files = glob( "$tmp_dir/iContact_notices/*.txt" );
  22. ok( scalar(@files), "Looks like a file was written..." );
  23. # Thu-Dec-20-13:46:46-2018
  24. 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;
  25. #diag `cat $files[0]`;
  26. };