The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
#!perl -T
use strict;
use warnings;
use Test::More;
use File::Spec;
use Data::Dumper;
use DateTime;
use Log::Log4perl;

if ( not $ENV{TEST_AUTHOR_SUGAR}) {
    my $msg = 'Author test.  Set $ENV{TEST_AUTHOR_SUGAR} to a true value to run. Define it as DEBUG to see the debug messages';
    plan( skip_all => $msg );
}


if(!(Log::Log4perl->initialized()) && $ENV{TEST_AUTHOR_SUGAR} eq 'DEBUG') {
    Log::Log4perl->easy_init($Log::Log4perl::DEBUG);
}

my $sleep = $ENV{NOSLEEP} ? 0 : 1;

my ($volume,$directories,$file) = File::Spec->splitpath($0);
push @INC, $directories;
my $defaults = File::Spec->catfile('lib', 'defaults.pl');
require $defaults;
if ( not defined($Test::testcampaign) || not defined($Test::testemail1) || not defined($Test::testemail2) || not defined($Test::testdsn) || not defined($Test::testdbuser) || not defined($Test::testdbpass)) {
    my $msg = 'Define testcampaign testprospectlist testemailmarketing  testemail1 and testemail2 in t/lib/defaults.pl';
    plan( skip_all => $msg );
}

use_ok('Net::SugarCRM');

my ($s, $mail, $mail2);
{
    no warnings 'once';
    $s = Net::SugarCRM->new(url=>$Test::url, restuser=>$Test::login, restpasswd=> $Test::pass,
	dsn => $Test::testdsn, dbuser => $Test::testdbuser, dbpassword => $Test::testdbpass
);
    $mail = $Test::testemail1;
    $mail2 = $Test::testemail2;
}
is(ref $s, 'Net::SugarCRM', 'Check that we got a Net::SugarCRM package');
my $lead_entry = {
       email1 => $mail,
       salutation => 'Mr',
       first_name => 'Bruce',
       last_name => 'Wayne',
       title => 'Detective',
       account_name => 'Justice League of America',
       department => 'Gotham city dep',
       phone_work => '+1123123123',
       website => 'http://justiceleagueofamerica.org',
};

my $leadid = $s->create_lead($lead_entry);
ok($leadid, "Lead created with leadid $leadid");
my $attrs;
{
    no warnings 'once';
    $attrs = {
	campaign_name => $Test::testcampaign,
	emailmarketing_name => $Test::testemailmarketing, 
	prospectlist_name => $Test::testprospectlist, 
	related_type => 'Leads',
	related_id => $leadid,
	email => $mail,
    };
}

ok($s->send_prospectlist_marketing_email_force($attrs), "Email sent to the outbound queue");
diag("Sleeping 65 seconds");
sleep 65 if ($sleep);
is($s->delete_lead_by_id($leadid), 1, "Deleting leadid $leadid");

done_testing();