return $self->{authtime};
}
+sub cache {
+ my $self = shift;
+ my $cache = "OpenSRF::Utils::Cache";
+ $cache->use;
+ $self->{memcache} = $cache->new('global') unless $self->{memcache};
+ return $self->{memcache};
+}
+
1;
__END__
--- /dev/null
+package OpenILS::Utils::TestUtils;
+use base "OpenILS::Utils::Cronscript";
+
+# The purpose of this module is to consolidate common routines that may
+# be used by the integration tests in src/perlmods/live_t/
+
+use strict; use warnings;
+
+my $apputils = 'OpenILS::Application::AppUtils';
+
+sub register_workstation {
+ my ($self,$name,$lib) = (shift,shift,shift);
+ my $resp = $apputils->simplereq(
+ 'open-ils.actor',
+ 'open-ils.actor.workstation.register',
+ $self->authtoken, $name, $lib);
+ return $resp;
+}
+
+sub do_checkout {
+ my ($self,$args) = (shift,shift);
+ my $resp = $apputils->simplereq(
+ 'open-ils.circ',
+ 'open-ils.circ.checkout.full', $self->authtoken, $args);
+ return $resp;
+}
+
+sub do_checkin {
+ my ($self,$args) = (shift,shift);
+ my $resp = $apputils->simplereq(
+ 'open-ils.circ',
+ 'open-ils.circ.checkin', $self->authtoken, $args );
+ return $resp;
+}
+
+1;
diag("Simple tests against the open-ils.storage service and the stock test data.");
use strict; use warnings;
-use OpenSRF::System;
-use OpenSRF::AppSession;
-use OpenILS::Utils::Fieldmapper;
-use OpenSRF::Utils::SettingsClient;
-my $config = `osrf_config --sysconfdir`;
-chomp $config;
-$config .= '/opensrf_core.xml';
-
-OpenSRF::System->bootstrap_client(config_file => $config);
-Fieldmapper->import(IDL =>
- OpenSRF::Utils::SettingsClient->new->config_value("IDL"));
+use OpenILS::Utils::TestUtils;
+my $script = OpenILS::Utils::TestUtils->new();
-my $ses = OpenSRF::AppSession->create('open-ils.storage');
+my $ses = $script->session('open-ils.storage');
my $req = $ses->request('open-ils.storage.direct.actor.user.retrieve', 1);
if (my $resp = $req->recv) {
if (my $user = $resp->content) {
diag("Simple tests against the open-ils.auth service, memcached, and the stock test data.");
-use strict;
-use warnings;
-use Data::Dumper;
-use OpenSRF::System;
-use OpenSRF::AppSession;
-use Digest::MD5 qw(md5_hex);
-use OpenILS::Application::AppUtils;
-use OpenSRF::Utils::SettingsClient;
+use strict; use warnings;
-# Some useful objects
-our $cache = "OpenSRF::Utils::Cache";
-our $apputils = "OpenILS::Application::AppUtils";
-our $memcache;
-our $authtoken;
-our $authtime;
-
-#----------------------------------------------------------------
-# Exit a script
-#----------------------------------------------------------------
-sub err {
- my ($pkg, $file, $line, $sub) = _caller();
- no warnings;
- die "Script halted with error ".
- "($pkg : $file : $line : $sub):\n" . shift() . "\n";
-}
-
-#----------------------------------------------------------------
-# This is not the function you're looking for
-#----------------------------------------------------------------
-sub _caller {
- my ($pkg, $file, $line, $sub) = caller(2);
- if(!$line) {
- ($pkg, $file, $line) = caller(1);
- $sub = "";
- }
- return ($pkg, $file, $line, $sub);
-}
-
-#----------------------------------------------------------------
-# Connect to the servers
-#----------------------------------------------------------------
-sub osrf_connect {
- my $config = `osrf_config --sysconfdir`;
- chomp $config;
- $config .= '/opensrf_core.xml';
- err("Bootstrap config required") unless $config;
- OpenSRF::System->bootstrap_client( config_file => $config );
-}
-
-#----------------------------------------------------------------
-# Get a handle for the memcache object
-#----------------------------------------------------------------
-sub osrf_cache {
- $cache->use;
- $memcache = $cache->new('global') unless $memcache;
- return $memcache;
-}
-
-#----------------------------------------------------------------
-# Is the given object an OILS event?
-#----------------------------------------------------------------
-sub oils_is_event {
- my $e = shift;
- if( $e and ref($e) eq 'HASH' ) {
- return 1 if defined($e->{ilsevent});
- }
- return 0;
-}
-
-#----------------------------------------------------------------
-# If the given object is an event, this prints the event info
-# and exits the script
-#----------------------------------------------------------------
-sub oils_event_die {
- my $evt = shift;
- my ($pkg, $file, $line, $sub) = _caller();
- if(oils_is_event($evt)) {
- if($evt->{ilsevent}) {
- diag("\nReceived Event($pkg : $file : $line : $sub): \n" . Dumper($evt));
- exit 1;
- }
- }
-}
-
-#----------------------------------------------------------------
-# Login to the auth server and set the global $authtoken var
-#----------------------------------------------------------------
-sub oils_login {
- my( $username, $password, $type ) = @_;
-
- $type |= "staff";
-
- my $seed = $apputils->simplereq( 'open-ils.auth',
- 'open-ils.auth.authenticate.init', $username );
- err("No auth seed") unless $seed;
-
- my $response = $apputils->simplereq( 'open-ils.auth',
- 'open-ils.auth.authenticate.complete',
- { username => $username,
- password => md5_hex($seed . md5_hex($password)),
- type => $type });
-
- err("No auth response returned on login") unless $response;
-
- oils_event_die($response);
-
- $authtime = $response->{payload}->{authtime};
- $authtoken = $response->{payload}->{authtoken};
- diag("authtime is $authtime, authtoken is $authtoken");
- return $authtoken;
-}
-
-#----------------------------------------------------------------
-# Destroys the login session on the server
-#----------------------------------------------------------------
-sub oils_logout {
- $apputils->simplereq(
- 'open-ils.auth',
- 'open-ils.auth.session.delete', (@_ ? shift : $authtoken) );
-}
-
-#----------------------------------------------------------------
-# var $response = simplereq( $service, $method, @params );
-#----------------------------------------------------------------
-sub simplereq { return $apputils->simplereq(@_); }
-sub osrf_request { return $apputils->simplereq(@_); }
+use OpenILS::Utils::TestUtils;
+my $script = OpenILS::Utils::TestUtils->new();
#----------------------------------------------------------------
# The tests... assumes stock sample data, full-auto install by
# eg_wheezy_installer.sh, etc.
#----------------------------------------------------------------
-osrf_connect();
-oils_login('admin','demo123','staff');
+$script->authenticate({
+ username => 'admin',
+ password => 'demo123',
+ type => 'staff'});
+
+my $authtoken = $script->authtoken;
ok(
$authtoken,
'Have an authtoken'
);
is(
- $authtime,
+ $script->authtime,
7200,
'Default authtime for staff login is 7200 seconds'
);
-osrf_cache();
-my $cached_obj = $memcache->get_cache("oils_auth_$authtoken");
+my $cached_obj = $script->cache()->get_cache("oils_auth_$authtoken");
ok(
ref $cached_obj,
'Can retrieve authtoken from memcached'
);
-oils_logout();
+$script->logout();
-$cached_obj = $memcache->get_cache("oils_auth_$authtoken");
+$cached_obj = $script->cache()->get_cache("oils_auth_$authtoken");
ok(
! $cached_obj,
'Authtoken is removed from memcached after logout'
use constant ITEM_BARCODE => 'CONC70000345';
use constant ITEM_ID => 310;
-use strict;
-use warnings;
-use Data::Dumper;
-use OpenSRF::System;
-use OpenSRF::AppSession;
-use Digest::MD5 qw(md5_hex);
-use OpenILS::Utils::Fieldmapper;
-use OpenILS::Application::AppUtils;
-use OpenSRF::Utils::SettingsClient;
+use strict; use warnings;
-# Some useful objects
-our $cache = "OpenSRF::Utils::Cache";
-our $apputils = "OpenILS::Application::AppUtils";
-our $memcache;
-our $authtoken;
-our $authtime;
-
-#----------------------------------------------------------------
-# Exit a script
-#----------------------------------------------------------------
-sub err {
- my ($pkg, $file, $line, $sub) = _caller();
- no warnings;
- die "Script halted with error ".
- "($pkg : $file : $line : $sub):\n" . shift() . "\n";
-}
-
-#----------------------------------------------------------------
-# This is not the function you're looking for
-#----------------------------------------------------------------
-sub _caller {
- my ($pkg, $file, $line, $sub) = caller(2);
- if(!$line) {
- ($pkg, $file, $line) = caller(1);
- $sub = "";
- }
- return ($pkg, $file, $line, $sub);
-}
-
-#----------------------------------------------------------------
-# Connect to the servers
-#----------------------------------------------------------------
-sub osrf_connect {
- my $config = `osrf_config --sysconfdir`;
- chomp $config;
- $config .= '/opensrf_core.xml';
- err("Bootstrap config required") unless $config;
- OpenSRF::System->bootstrap_client( config_file => $config );
- Fieldmapper->import(IDL =>
- OpenSRF::Utils::SettingsClient->new->config_value("IDL"));
-}
-
-#----------------------------------------------------------------
-# Is the given object an OILS event?
-#----------------------------------------------------------------
-sub oils_is_event {
- my $e = shift;
- if( $e and ref($e) eq 'HASH' ) {
- return 1 if defined($e->{ilsevent});
- }
- return 0;
-}
-
-#----------------------------------------------------------------
-# If the given object is an event, this prints the event info
-# and exits the script
-#----------------------------------------------------------------
-sub oils_event_die {
- my $evt = shift;
- my ($pkg, $file, $line, $sub) = _caller();
- if(oils_is_event($evt)) {
- if($evt->{ilsevent}) {
- diag("\nReceived Event($pkg : $file : $line : $sub): \n" . Dumper($evt));
- exit 1;
- }
- }
-}
-
-#----------------------------------------------------------------
-# Login to the auth server and set the global $authtoken var
-#----------------------------------------------------------------
-sub oils_login {
- my( $username, $password, $type, $ws ) = @_;
-
- $type |= "staff";
-
- my $seed = $apputils->simplereq( 'open-ils.auth',
- 'open-ils.auth.authenticate.init', $username );
- err("No auth seed") unless $seed;
-
- my $response = $apputils->simplereq( 'open-ils.auth',
- 'open-ils.auth.authenticate.complete',
- { username => $username,
- password => md5_hex($seed . md5_hex($password)),
- type => $type, workstation => $ws });
-
- err("No auth response returned on login") unless $response;
-
- oils_event_die($response);
-
- $authtime = $response->{payload}->{authtime};
- $authtoken = $response->{payload}->{authtoken};
- diag("authtime is $authtime, authtoken is $authtoken");
- return $authtoken;
-}
-
-#----------------------------------------------------------------
-# Destroys the login session on the server
-#----------------------------------------------------------------
-sub oils_logout {
- $apputils->simplereq(
- 'open-ils.auth',
- 'open-ils.auth.session.delete', (@_ ? shift : $authtoken) );
-}
-
-#----------------------------------------------------------------
-# var $response = simplereq( $service, $method, @params );
-#----------------------------------------------------------------
-sub simplereq { return $apputils->simplereq(@_); }
-sub osrf_request { return $apputils->simplereq(@_); }
-
-#----------------------------------------------------------------
-
-sub register_workstation {
- my $resp = osrf_request(
- 'open-ils.actor',
- 'open-ils.actor.workstation.register',
- $authtoken, WORKSTATION_NAME, WORKSTATION_LIB);
- return $resp;
-}
-
-sub do_checkout {
- my( $patronid, $barcode ) = @_;
- my $args = { patron => $patronid, barcode => $barcode };
- my $resp = osrf_request(
- 'open-ils.circ',
- 'open-ils.circ.checkout.full', $authtoken, $args );
- return $resp;
-}
-
-sub do_checkin {
- my $barcode = shift;
- my $args = { barcode => $barcode };
- my $resp = osrf_request(
- 'open-ils.circ',
- 'open-ils.circ.checkin', $authtoken, $args );
- return $resp;
-}
+use OpenILS::Utils::TestUtils;
+my $script = OpenILS::Utils::TestUtils->new();
#----------------------------------------------------------------
# The tests... assumes stock sample data, full-auto install by
# eg_wheezy_installer.sh, etc.
#----------------------------------------------------------------
-osrf_connect();
-my $storage_ses = OpenSRF::AppSession->create('open-ils.storage');
+my $storage_ses = $script->session('open-ils.storage');
my $user_req = $storage_ses->request('open-ils.storage.direct.actor.user.retrieve', 1);
if (my $user_resp = $user_req->recv) {
}
}
-oils_login('admin','demo123','staff');
+$script->authenticate({
+ username => 'admin',
+ password => 'demo123',
+ type => 'staff'});
ok(
- $authtoken,
+ $script->authtoken,
'Have an authtoken'
);
-my $ws = register_workstation();
+my $ws = $script->register_workstation(WORKSTATION_NAME,WORKSTATION_LIB);
ok(
! ref $ws,
'Registered a new workstation'
);
-oils_logout();
-oils_login('admin','demo123','staff',WORKSTATION_NAME);
+$script->logout();
+$script->authenticate({
+ username => 'admin',
+ password => 'demo123',
+ type => 'staff',
+ workstation => WORKSTATION_NAME});
ok(
- $authtoken,
+ $script->authtoken,
'Have an authtoken associated with the workstation'
);
-my $checkout_resp = do_checkout(1, ITEM_BARCODE);
+my $checkout_resp = $script->do_checkout({
+ patron => 1,
+ barcode => ITEM_BARCODE});
is(
ref $checkout_resp,
'HASH',
}
}
-my $checkin_resp = do_checkin(ITEM_BARCODE);
+my $checkin_resp = $script->do_checkin({
+ barcode => ITEM_BARCODE});
is(
ref $checkin_resp,
'HASH',
}
}
-oils_logout();
-
+$script->logout();
use constant ITEM_BARCODE => 'CONC71000345';
use constant ITEM_ID => 810;
-use strict;
-use warnings;
-use Data::Dumper;
-use OpenSRF::System;
-use OpenSRF::AppSession;
-use Digest::MD5 qw(md5_hex);
-use OpenILS::Utils::Fieldmapper;
-use OpenILS::Application::AppUtils;
+use strict; use warnings;
+
+use OpenILS::Utils::TestUtils;
+my $script = OpenILS::Utils::TestUtils->new();
+
use DateTime;
use DateTime::Format::ISO8601;
use OpenSRF::Utils qw/cleanse_ISO8601/;
-use OpenSRF::Utils::SettingsClient;
-
-# Some useful objects
-our $cache = "OpenSRF::Utils::Cache";
-our $apputils = "OpenILS::Application::AppUtils";
-our $memcache;
-our $authtoken;
-our $authtime;
-
-#----------------------------------------------------------------
-# Exit a script
-#----------------------------------------------------------------
-sub err {
- my ($pkg, $file, $line, $sub) = _caller();
- no warnings;
- die "Script halted with error ".
- "($pkg : $file : $line : $sub):\n" . shift() . "\n";
-}
-
-#----------------------------------------------------------------
-# This is not the function you're looking for
-#----------------------------------------------------------------
-sub _caller {
- my ($pkg, $file, $line, $sub) = caller(2);
- if(!$line) {
- ($pkg, $file, $line) = caller(1);
- $sub = "";
- }
- return ($pkg, $file, $line, $sub);
-}
-
-#----------------------------------------------------------------
-# Connect to the servers
-#----------------------------------------------------------------
-sub osrf_connect {
- my $config = `osrf_config --sysconfdir`;
- chomp $config;
- $config .= '/opensrf_core.xml';
- err("Bootstrap config required") unless $config;
- OpenSRF::System->bootstrap_client( config_file => $config );
- Fieldmapper->import(IDL =>
- OpenSRF::Utils::SettingsClient->new->config_value("IDL"));
-}
-
-#----------------------------------------------------------------
-# Is the given object an OILS event?
-#----------------------------------------------------------------
-sub oils_is_event {
- my $e = shift;
- if( $e and ref($e) eq 'HASH' ) {
- return 1 if defined($e->{ilsevent});
- }
- return 0;
-}
-
-#----------------------------------------------------------------
-# If the given object is an event, this prints the event info
-# and exits the script
-#----------------------------------------------------------------
-sub oils_event_die {
- my $evt = shift;
- my ($pkg, $file, $line, $sub) = _caller();
- if(oils_is_event($evt)) {
- if($evt->{ilsevent}) {
- diag("\nReceived Event($pkg : $file : $line : $sub): \n" . Dumper($evt));
- exit 1;
- }
- }
-}
-
-#----------------------------------------------------------------
-# Login to the auth server and set the global $authtoken var
-#----------------------------------------------------------------
-sub oils_login {
- my( $username, $password, $type, $ws ) = @_;
-
- $type |= "staff";
-
- my $seed = $apputils->simplereq( 'open-ils.auth',
- 'open-ils.auth.authenticate.init', $username );
- err("No auth seed") unless $seed;
-
- my $response = $apputils->simplereq( 'open-ils.auth',
- 'open-ils.auth.authenticate.complete',
- { username => $username,
- password => md5_hex($seed . md5_hex($password)),
- type => $type, workstation => $ws });
- err("No auth response returned on login") unless $response;
-
- oils_event_die($response);
-
- $authtime = $response->{payload}->{authtime};
- $authtoken = $response->{payload}->{authtoken};
- diag("authtime is $authtime, authtoken is $authtoken");
- return $authtoken;
-}
-
-#----------------------------------------------------------------
-# Destroys the login session on the server
-#----------------------------------------------------------------
-sub oils_logout {
- $apputils->simplereq(
- 'open-ils.auth',
- 'open-ils.auth.session.delete', (@_ ? shift : $authtoken) );
-}
-
-#----------------------------------------------------------------
-# var $response = simplereq( $service, $method, @params );
-#----------------------------------------------------------------
-sub simplereq { return $apputils->simplereq(@_); }
-sub osrf_request { return $apputils->simplereq(@_); }
-
-#----------------------------------------------------------------
-
-sub register_workstation {
- my $resp = osrf_request(
- 'open-ils.actor',
- 'open-ils.actor.workstation.register',
- $authtoken, WORKSTATION_NAME, WORKSTATION_LIB);
- return $resp;
-}
-
-sub do_checkout {
- my( $patronid, $barcode ) = @_;
- my $args = { patron => $patronid, barcode => $barcode };
- my $resp = osrf_request(
- 'open-ils.circ',
- 'open-ils.circ.checkout.full', $authtoken, $args );
- return $resp;
-}
-
-sub do_checkin {
- my $barcode = shift;
- my $args = { barcode => $barcode };
- my $resp = osrf_request(
- 'open-ils.circ',
- 'open-ils.circ.checkin', $authtoken, $args );
- return $resp;
-}
+our $apputils = 'OpenILS::Application::AppUtils';
#----------------------------------------------------------------
# The tests... assumes stock sample data, full-auto install by
# eg_wheezy_installer.sh, etc.
#----------------------------------------------------------------
-osrf_connect();
-my $storage_ses = OpenSRF::AppSession->create('open-ils.storage');
-my $circ_ses = OpenSRF::AppSession->create('open-ils.circ');
-my $cstore_ses = OpenSRF::AppSession->connect('open-ils.cstore');
+my $storage_ses = $script->session('open-ils.storage');
+my $circ_ses = $script->session('open-ils.circ');
+my $cstore_ses = $script->session('open-ils.cstore');
my $user_req = $storage_ses->request('open-ils.storage.direct.actor.user.retrieve', 1);
if (my $user_resp = $user_req->recv) {
}
}
-oils_login('admin','demo123','staff');
+$script->authenticate({
+ username => 'admin',
+ password => 'demo123',
+ type => 'staff'});
ok(
- $authtoken,
+ $script->authtoken,
'Have an authtoken'
);
-my $ws = register_workstation();
+my $ws = $script->register_workstation(WORKSTATION_NAME,WORKSTATION_LIB);
ok(
! ref $ws,
'Registered a new workstation'
);
-oils_logout();
-oils_login('admin','demo123','staff',WORKSTATION_NAME);
+$script->logout();
+$script->authenticate({
+ username => 'admin',
+ password => 'demo123',
+ type => 'staff',
+ workstation => WORKSTATION_NAME});
ok(
- $authtoken,
+ $script->authtoken,
'Have an authtoken associated with the workstation'
);
-my $checkout_resp = do_checkout(1, ITEM_BARCODE);
+my $checkout_resp = $script->do_checkout({
+ patron => 1,
+ barcode => ITEM_BARCODE});
is(
ref $checkout_resp,
'HASH',
my $bill_req = $circ_ses->request(
'open-ils.circ.money.billing.retrieve.all',
- $authtoken,
+ $script->authtoken,
$circ->id
);
if (my $bill_resp = $bill_req->recv) {
$circ->xact_start( $apputils->epoch2ISO8601($xact_start - $twenty_days) );
$circ->due_date( $apputils->epoch2ISO8601($due_date - $twenty_days) );
+$cstore_ses->connect; # need stateful connection
my $xact = $cstore_ses->request('open-ils.cstore.transaction.begin')->gather(1);
my $update_req = $cstore_ses->request(
'open-ils.cstore.direct.action.circulation.update',
########
-my $checkin_resp = do_checkin(ITEM_BARCODE);
+my $checkin_resp = $script->do_checkin({
+ barcode => ITEM_BARCODE});
is(
ref $checkin_resp,
'HASH',
$bill_req = $circ_ses->request(
'open-ils.circ.money.billing.retrieve.all',
- $authtoken,
+ $script->authtoken,
$circ->id
);
if (my $bill_resp = $bill_req->recv) {
}
-oils_logout();
+$script->logout();
use constant ITEM_BARCODE => 'CONC72000345';
use constant ITEM_ID => 1310;
-use strict;
-use warnings;
-use Data::Dumper;
-use OpenSRF::System;
-use OpenSRF::AppSession;
-use Digest::MD5 qw(md5_hex);
-use OpenILS::Utils::Fieldmapper;
-use OpenILS::Application::AppUtils;
+use strict; use warnings;
+
+use OpenILS::Utils::TestUtils;
+my $script = OpenILS::Utils::TestUtils->new();
+
use DateTime;
use DateTime::Format::ISO8601;
use OpenSRF::Utils qw/cleanse_ISO8601/;
-use OpenSRF::Utils::SettingsClient;
-# Some useful objects
-our $cache = "OpenSRF::Utils::Cache";
our $apputils = "OpenILS::Application::AppUtils";
-our $memcache;
-our $authtoken;
-our $authtime;
-
-#----------------------------------------------------------------
-# Exit a script
-#----------------------------------------------------------------
-sub err {
- my ($pkg, $file, $line, $sub) = _caller();
- no warnings;
- die "Script halted with error ".
- "($pkg : $file : $line : $sub):\n" . shift() . "\n";
-}
-
-#----------------------------------------------------------------
-# This is not the function you're looking for
-#----------------------------------------------------------------
-sub _caller {
- my ($pkg, $file, $line, $sub) = caller(2);
- if(!$line) {
- ($pkg, $file, $line) = caller(1);
- $sub = "";
- }
- return ($pkg, $file, $line, $sub);
-}
-
-#----------------------------------------------------------------
-# Connect to the servers
-#----------------------------------------------------------------
-sub osrf_connect {
- my $config = `osrf_config --sysconfdir`;
- chomp $config;
- $config .= '/opensrf_core.xml';
- err("Bootstrap config required") unless $config;
- OpenSRF::System->bootstrap_client( config_file => $config );
- Fieldmapper->import(IDL =>
- OpenSRF::Utils::SettingsClient->new->config_value("IDL"));
-}
-
-#----------------------------------------------------------------
-# Is the given object an OILS event?
-#----------------------------------------------------------------
-sub oils_is_event {
- my $e = shift;
- if( $e and ref($e) eq 'HASH' ) {
- return 1 if defined($e->{ilsevent});
- }
- return 0;
-}
-
-#----------------------------------------------------------------
-# If the given object is an event, this prints the event info
-# and exits the script
-#----------------------------------------------------------------
-sub oils_event_die {
- my $evt = shift;
- my ($pkg, $file, $line, $sub) = _caller();
- if(oils_is_event($evt)) {
- if($evt->{ilsevent}) {
- diag("\nReceived Event($pkg : $file : $line : $sub): \n" . Dumper($evt));
- exit 1;
- }
- }
-}
-
-#----------------------------------------------------------------
-# Login to the auth server and set the global $authtoken var
-#----------------------------------------------------------------
-sub oils_login {
- my( $username, $password, $type, $ws ) = @_;
-
- $type |= "staff";
-
- my $seed = $apputils->simplereq( 'open-ils.auth',
- 'open-ils.auth.authenticate.init', $username );
- err("No auth seed") unless $seed;
-
- my $response = $apputils->simplereq( 'open-ils.auth',
- 'open-ils.auth.authenticate.complete',
- { username => $username,
- password => md5_hex($seed . md5_hex($password)),
- type => $type, workstation => $ws });
-
- err("No auth response returned on login") unless $response;
-
- oils_event_die($response);
-
- $authtime = $response->{payload}->{authtime};
- $authtoken = $response->{payload}->{authtoken};
- diag("authtime is $authtime, authtoken is $authtoken");
- return $authtoken;
-}
-
-#----------------------------------------------------------------
-# Destroys the login session on the server
-#----------------------------------------------------------------
-sub oils_logout {
- $apputils->simplereq(
- 'open-ils.auth',
- 'open-ils.auth.session.delete', (@_ ? shift : $authtoken) );
-}
-
-#----------------------------------------------------------------
-# var $response = simplereq( $service, $method, @params );
-#----------------------------------------------------------------
-sub simplereq { return $apputils->simplereq(@_); }
-sub osrf_request { return $apputils->simplereq(@_); }
-
-#----------------------------------------------------------------
-
-sub register_workstation {
- my $resp = osrf_request(
- 'open-ils.actor',
- 'open-ils.actor.workstation.register',
- $authtoken, WORKSTATION_NAME, WORKSTATION_LIB);
- return $resp;
-}
-
-sub do_checkout {
- my( $patronid, $barcode ) = @_;
- my $args = { patron => $patronid, barcode => $barcode };
- my $resp = osrf_request(
- 'open-ils.circ',
- 'open-ils.circ.checkout.full', $authtoken, $args );
- return $resp;
-}
-
-sub do_checkin {
- my $barcode = shift;
- my $args = { barcode => $barcode };
- my $resp = osrf_request(
- 'open-ils.circ',
- 'open-ils.circ.checkin', $authtoken, $args );
- return $resp;
-}
sub create_closed_date {
my $ten_days = OpenSRF::Utils->interval_to_seconds('240 h 0 m 0 s');
DateTime->today()->epoch() - $ten_days + $almost_twenty_four_hours
)
);
- my $resp = osrf_request(
+ my $resp = $apputils->simplereq(
'open-ils.actor',
'open-ils.actor.org_unit.closed.create',
- $authtoken, $aoucd);
+ $script->authtoken, $aoucd);
return $resp;
}
sub delete_closed_date {
my $aoucd = shift;
- my $resp = osrf_request(
+ my $resp = $apputils->simplereq(
'open-ils.actor',
'open-ils.actor.org_unit.closed.delete',
- $authtoken, ref $aoucd ? $aoucd->id : $aoucd );
+ $script->authtoken, ref $aoucd ? $aoucd->id : $aoucd );
return $resp;
}
# eg_wheezy_installer.sh, etc.
#----------------------------------------------------------------
-osrf_connect();
-my $storage_ses = OpenSRF::AppSession->create('open-ils.storage');
-my $circ_ses = OpenSRF::AppSession->create('open-ils.circ');
-my $cstore_ses = OpenSRF::AppSession->connect('open-ils.cstore');
+my $storage_ses = $script->session('open-ils.storage');
+my $circ_ses = $script->session('open-ils.circ');
+my $cstore_ses = $script->session('open-ils.cstore');
my $user_req = $storage_ses->request('open-ils.storage.direct.actor.user.retrieve', 1);
if (my $user_resp = $user_req->recv) {
}
}
-oils_login('admin','demo123','staff');
+$script->authenticate({
+ username => 'admin',
+ password => 'demo123',
+ type => 'staff'});
ok(
- $authtoken,
+ $script->authtoken,
'Have an authtoken'
);
-my $ws = register_workstation();
+my $ws = $script->register_workstation(WORKSTATION_NAME,WORKSTATION_LIB);
ok(
! ref $ws,
'Registered a new workstation'
);
-oils_logout();
-oils_login('admin','demo123','staff',WORKSTATION_NAME);
+$script->logout();
+$script->authenticate({
+ username => 'admin',
+ password => 'demo123',
+ type => 'staff',
+ workstation => WORKSTATION_NAME});
ok(
- $authtoken,
+ $script->authtoken,
'Have an authtoken associated with the workstation'
);
'Created a closed date for 10 days ago'
);
-my $checkout_resp = do_checkout(1, ITEM_BARCODE);
+my $checkout_resp = $script->do_checkout({
+ patron => 1,
+ barcode => ITEM_BARCODE});
is(
ref $checkout_resp,
'HASH',
my $bill_req = $circ_ses->request(
'open-ils.circ.money.billing.retrieve.all',
- $authtoken,
+ $script->authtoken,
$circ->id
);
if (my $bill_resp = $bill_req->recv) {
$circ->xact_start( $apputils->epoch2ISO8601($xact_start - $twenty_days) );
$circ->due_date( $apputils->epoch2ISO8601($due_date - $twenty_days) );
+$cstore_ses->connect; # need stateful connection
my $xact = $cstore_ses->request('open-ils.cstore.transaction.begin')->gather(1);
my $update_req = $cstore_ses->request(
'open-ils.cstore.direct.action.circulation.update',
########
-my $checkin_resp = do_checkin(ITEM_BARCODE);
+my $checkin_resp = $script->do_checkin({
+ barcode => ITEM_BARCODE});
is(
ref $checkin_resp,
'HASH',
$bill_req = $circ_ses->request(
'open-ils.circ.money.billing.retrieve.all',
- $authtoken,
+ $script->authtoken,
$circ->id
);
if (my $bill_resp = $bill_req->recv) {
my $tmp = delete_closed_date($closed_date_obj);
is($tmp, 1, 'Removed closed date');
-oils_logout();
+$script->logout();
use constant USER_ID => 1;
use constant USER_USRNAME => 'admin';
-use strict;
-use warnings;
-use Data::Dumper;
-use OpenSRF::System;
-use OpenSRF::AppSession;
-use Digest::MD5 qw(md5_hex);
-use OpenILS::Utils::Fieldmapper;
-use OpenILS::Application::AppUtils;
+use strict; use warnings;
+
+use OpenILS::Utils::TestUtils;
+my $script = OpenILS::Utils::TestUtils->new();
+
use DateTime;
use DateTime::Format::ISO8601;
use OpenSRF::Utils qw/cleanse_ISO8601/;
-use OpenSRF::Utils::SettingsClient;
-# Some useful objects
-our $cache = "OpenSRF::Utils::Cache";
our $apputils = "OpenILS::Application::AppUtils";
-our $memcache;
-our $authtoken;
-our $authtime;
-
-#----------------------------------------------------------------
-# Exit a script
-#----------------------------------------------------------------
-sub err {
- my ($pkg, $file, $line, $sub) = _caller();
- no warnings;
- die "Script halted with error ".
- "($pkg : $file : $line : $sub):\n" . shift() . "\n";
-}
-
-#----------------------------------------------------------------
-# This is not the function you're looking for
-#----------------------------------------------------------------
-sub _caller {
- my ($pkg, $file, $line, $sub) = caller(2);
- if(!$line) {
- ($pkg, $file, $line) = caller(1);
- $sub = "";
- }
- return ($pkg, $file, $line, $sub);
-}
-
-#----------------------------------------------------------------
-# Connect to the servers
-#----------------------------------------------------------------
-sub osrf_connect {
- my $config = `osrf_config --sysconfdir`;
- chomp $config;
- $config .= '/opensrf_core.xml';
- err("Bootstrap config required") unless $config;
- OpenSRF::System->bootstrap_client( config_file => $config );
- Fieldmapper->import(IDL =>
- OpenSRF::Utils::SettingsClient->new->config_value("IDL"));
-}
-
-#----------------------------------------------------------------
-# Is the given object an OILS event?
-#----------------------------------------------------------------
-sub oils_is_event {
- my $e = shift;
- if( $e and ref($e) eq 'HASH' ) {
- return 1 if defined($e->{ilsevent});
- }
- return 0;
-}
-
-#----------------------------------------------------------------
-# If the given object is an event, this prints the event info
-# and exits the script
-#----------------------------------------------------------------
-sub oils_event_die {
- my $evt = shift;
- my ($pkg, $file, $line, $sub) = _caller();
- if(oils_is_event($evt)) {
- if($evt->{ilsevent}) {
- diag("\nReceived Event($pkg : $file : $line : $sub): \n" . Dumper($evt));
- exit 1;
- }
- }
-}
-
-#----------------------------------------------------------------
-# Login to the auth server and set the global $authtoken var
-#----------------------------------------------------------------
-sub oils_login {
- my( $username, $password, $type, $ws ) = @_;
-
- $type |= "staff";
-
- my $seed = $apputils->simplereq( 'open-ils.auth',
- 'open-ils.auth.authenticate.init', $username );
- err("No auth seed") unless $seed;
-
- my $response = $apputils->simplereq( 'open-ils.auth',
- 'open-ils.auth.authenticate.complete',
- { username => $username,
- password => md5_hex($seed . md5_hex($password)),
- type => $type, workstation => $ws });
-
- err("No auth response returned on login") unless $response;
-
- oils_event_die($response);
-
- $authtime = $response->{payload}->{authtime};
- $authtoken = $response->{payload}->{authtoken};
- diag("authtime is $authtime, authtoken is $authtoken");
- return $authtoken;
-}
-
-#----------------------------------------------------------------
-# Destroys the login session on the server
-#----------------------------------------------------------------
-sub oils_logout {
- $apputils->simplereq(
- 'open-ils.auth',
- 'open-ils.auth.session.delete', (@_ ? shift : $authtoken) );
-}
-
-#----------------------------------------------------------------
-# var $response = simplereq( $service, $method, @params );
-#----------------------------------------------------------------
-sub simplereq { return $apputils->simplereq(@_); }
-sub osrf_request { return $apputils->simplereq(@_); }
-
-#----------------------------------------------------------------
-
-sub register_workstation {
- my $resp = osrf_request(
- 'open-ils.actor',
- 'open-ils.actor.workstation.register',
- $authtoken, WORKSTATION_NAME, WORKSTATION_LIB);
- return $resp;
-}
sub fetch_billing_summaries {
- my $resp = osrf_request(
+ my $resp = $apputils->simplereq(
'open-ils.actor',
'open-ils.actor.user.transactions.history.have_balance.authoritative',
- $authtoken,
+ $script->authtoken,
USER_ID
);
return $resp;
sub pay_bills {
my ($user_obj, $payment_blob) = (shift, shift);
- my $resp = osrf_request(
+ my $resp = $apputils->simplereq(
'open-ils.circ',
'open-ils.circ.money.payment',
- $authtoken,
+ $script->authtoken,
$payment_blob,
$user_obj->last_xact_id
);
# eg_wheezy_installer.sh, etc.
#----------------------------------------------------------------
-osrf_connect();
-my $storage_ses = OpenSRF::AppSession->create('open-ils.storage');
+my $storage_ses = $script->session('open-ils.storage');
my $user_obj;
my $user_req = $storage_ses->request('open-ils.storage.direct.actor.user.retrieve', USER_ID);
}
}
-oils_login('admin','demo123','staff');
+$script->authenticate({
+ username => 'admin',
+ password => 'demo123',
+ type => 'staff'});
ok(
- $authtoken,
+ $script->authtoken,
'Have an authtoken'
);
-my $ws = register_workstation();
+my $ws = $script->register_workstation(WORKSTATION_NAME,WORKSTATION_LIB);
ok(
! ref $ws,
'Registered a new workstation'
);
-oils_logout();
-oils_login('admin','demo123','staff',WORKSTATION_NAME);
+$script->logout();
+$script->authenticate({
+ username => 'admin',
+ password => 'demo123',
+ type => 'staff',
+ workstation => WORKSTATION_NAME});
ok(
- $authtoken,
+ $script->authtoken,
'Have an authtoken associated with the workstation'
);
'Zero billable xacts for ' . USER_USRNAME . ' user after payment'
);
-oils_logout();
+$script->logout();