]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/perlmods/live_t/30-barcode-completion.t
LP2045292 Color contrast for AngularJS patron bills
[Evergreen.git] / Open-ILS / src / perlmods / live_t / 30-barcode-completion.t
1 #!perl
2
3 use Test::More tests => 4;
4
5 diag("Tests barcode completion");
6
7 use strict; use warnings;
8 use OpenILS::Utils::TestUtils;
9 use OpenILS::Utils::CStoreEditor (':funcs');
10 use OpenILS::Utils::Fieldmapper;
11 our $U = "OpenILS::Application::AppUtils";
12
13 my $script = OpenILS::Utils::TestUtils->new();
14 $script->bootstrap();
15
16 # test values
17 my $org = 5; # test org: BR2
18 my $bc_base = 'bc_complete_user';
19 my $bc_prefix = 'JUSTATEST_';
20 my $bc = $bc_prefix . $bc_base;
21
22 # get authtoken for future use
23 $script->authenticate({
24     username => 'admin',
25     password => 'demo123',
26     type => 'staff'
27 });
28
29 my $authtoken = $script->authtoken;
30 ok($authtoken, 'was able to authenticate');
31
32 # create test user
33 my $new_user = Fieldmapper::actor::user->new();
34 my $new_card = Fieldmapper::actor::card->new();
35
36 $new_card->barcode($bc);
37 $new_card->id(-1); # virtual ID
38 $new_card->usr(undef);
39 $new_card->isnew(1);
40
41 $new_user->cards([ $new_card ]);
42 $new_user->card($new_card);
43 $new_user->usrname($bc);
44 $new_user->passwd('dummypwd');
45 $new_user->family_name('Doe');
46 $new_user->first_given_name('Jane');
47 $new_user->profile(2);
48 $new_user->home_ou($org);
49 $new_user->ident_type(1);
50 $new_user->isnew(1);
51
52 my $user = $U->simplereq(
53     'open-ils.actor',
54     'open-ils.actor.patron.update',
55     $authtoken,
56     $new_user
57 );
58 isa_ok($user, 'Fieldmapper::actor::user', 'new patron');
59
60 # create barcode completion rule
61 my $new_rule = Fieldmapper::config::barcode_completion->new();
62
63 $new_rule->isnew(1);
64 $new_rule->active('t');
65 $new_rule->org_unit($org);
66 $new_rule->prefix($bc_prefix);
67 $new_rule->actor('t');
68 $new_rule->asset('f'); # TODO test item barcodes too
69
70 my $e = new_editor(xact => 1);
71 $e->init;
72
73 $e->xact_begin;
74 $e->create_config_barcode_completion($new_rule);
75 $e->xact_commit;
76
77 my $bc_rule = $e->search_config_barcode_completion({
78     org_unit => 5, actor => 't', prefix => $bc_prefix
79 })->[0];
80 isa_ok($bc_rule, 'Fieldmapper::config::barcode_completion', 'Created and retrieved new barcode completion rule');
81
82 my $get_barcodes = $U->simplereq(
83     'open-ils.actor',
84     'open-ils.actor.get_barcodes',
85     $authtoken, $org, 'actor', $bc_base
86 );
87 is($get_barcodes->[0]->{barcode}, $bc, 'Retrieved correct user with barcode completion');
88
89 # clean up
90 $U->simplereq(
91     'open-ils.actor',
92     'open-ils.actor.user.delete',
93     $authtoken,
94     $user->id()
95 );
96 $e->xact_begin;
97 $e->delete_config_barcode_completion($bc_rule);
98 $e->commit;
99