API-ISPManager

 view release on metacpan or  search on metacpan

t/01-test.t  view on Meta::CPAN

                'owner'  => 'bt',
                'dbuser' => 'bt',
                'dbtype' => 'MySQL',
                'dbkey'  => 'MySQL->bt',
                'size'   => '0.055'
            }
        }
    },
    'db list test'
);

### Databases end


### DB users

my $fake_db_user = <<DOC;
<?xml version="1.0" encoding="UTF-8"?>
<doc><plid>MySQL-&gt;blog</plid><elem><name>blog</name><read/><write/><manage/></elem></doc>
DOC

is_deeply(
    API::ISPManager::db_user::list( { %correct_params, elid => 'MySQL->blog' }, $fake_db_user ), {
        'data' => {
            'read' => {},
            'name' => 'blog',
            'manage' => {},
            'write' => {}
        }
    },
    'test db_user'
);


### DB users end

### Stats 

my $fake_sysinfo = <<DOC;
<?xml version="1.0" encoding="UTF-8"?>
<doc><elem><name>cpu</name><value>AMD Athlon(tm) 64 Processor 3700+ 2199.744 Mhz X 2</value></elem><elem><name>mem</name><value>393364 kB</value></elem><elem><name>swap</name><value>999992 kB</value></elem><elem><name>disk</name><value>49385 Mb</valu...

DOC

is_deeply( API::ISPManager::stat::sysinfo( { %correct_params }, $fake_sysinfo ), {
        'data' => {
            'proc'   => '88',
            'disk'   => '49385 Mb',
            'cpu'    => 'AMD Athlon(tm) 64 Processor 3700+ 2199.744 Mhz X 2',
            'avg'    => '1.39 0.96 0.89',
            'uptime' => '55 days 14 hours 5 minutes',
            'swap'   => '999992 kB',
            'mem'    => '393364 kB',
        }
    },
    'sysinfo test'
);

my $fake_usagestat = <<DOC;
<?xml version="1.0" encoding="UTF-8"?>
<doc><elem><name>disk</name><value used="1817" limit="4950"/></elem><elem><name>reseller</name><value used="1" limit="0"/></elem><elem><name>user</name><value used="20" limit="0"/></elem><elem><name>bandwidth</name><value used="8170" limit="170000000...
DOC

is_deeply( API::ISPManager::stat::usagestat( { %correct_params }, $fake_usagestat ), {
        'data' => {
            'ftpuser' => {
                'used' => '20',
                'limit' => '70220'
            },
            'disk' => {
                'used' => '1817',
                'limit' => '4950'
            },
            'maildomain' => {
                'used' => '16',
                'limit' => '80017'
            },
            'database' => {
                'used' => '17',
                'limit' => '70021'
            },
            'mailuser' => {
                'used' => '4',
                'limit' => '60140'
            },
            'domain' => {
                'used' => '23',
                'limit' => '70022'
            },
            'bandwidth' => {
                'used' => '8170',
                'limit' => '1700000000'
            },
            'databaseuser' => {
                'used' => '17',
                'limit' => '70026'
            },
            'user' => {
                'used' => '20',
                'limit' => '0'
            },
            'reseller' => {
                'used' => '1',
                'limit' => '0'
            },
            'wwwdomain' => {
                'used' => '20',
                'limit' => '70022'
            }
        }
    },
    'usagestat test'
);

### Stats end

#exit;

no warnings 'once';

$API::ISPManager::DEBUG = 0;


### ONLINE TESTS
exit if !$ONLINE;

$a = 'get_auth_id';
is( get_auth_id(
        username => 'root',
        password => 'qwerty',
        host     => $test_host,
        path     => 'manager',
    ), 
    '',
    "$a with error password"
);

my $auth_id;

like( $auth_id = get_auth_id(
        username => $ENV{username} || 'root',
        password => $ENV{password},
        host     => $test_host,
        path     => 'manager',
    ), 
    qr/\d+/,
    "$a with correct password ($auth_id)"
);

=head

is(
    scalar keys %{ API::ISPManager::user::list( { %correct_params } )->{elem} },
    20,
    'user::list test' 
);

=cut

my $ip_list = API::ISPManager::ip::list( { %correct_params } );

diag "Get ips from panel: " . Dumper( $ip_list );

if ($ip_list && ref $ip_list eq 'ARRAY' && scalar @$ip_list) {
    my $ip  = $ip_list->[0];
    
    if ($ip) {
        diag $ip;

        diag Dumper( API::ISPManager::user::create( {
            %correct_params,
            name      => 'nrgxxxxxapi',
            passwd    => 'qwerty',
            ip        => $ip, 
            preset    => 'Host-1',
            domain    => 'nrg.name',
        } ) );

        diag Dumper( API::ISPManager::ftp::list( {
            %correct_params,
            authinfo => 'username:password',
            su       => 'su_as_username',
        } ) );

    
        diag Dumper( API::ISPManager::user::disable( {
            %correct_params,
            elid      => 'nrgxxxxxapi',
        } ) );


        diag Dumper( API::ISPManager::user::enable( {
            %correct_params,
            elid      => 'nrgxxxxxapi',
        } ) );

        diag Dumper( API::ISPManager::user::delete( {
            %correct_params,
            elid      => 'nrgxxxxxapi',
        } ) );

    }
}

# warn Dumper( API::ISPManager::domain::list( { %correct_params } ) );




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