+subtest 'Lastseen response' => sub {
+
+ my $schema = Koha::Database->new->schema;
+ $schema->storage->txn_begin;
+
+ plan tests => 6;
+ my $builder = t::lib::TestBuilder->new();
+ my $branchcode = $builder->build({ source => 'Branch' })->{branchcode};
+ my ( $response, $findpatron );
+ my $mocks = create_mocks( \$response, \$findpatron, \$branchcode );
+ my $seen_patron = $builder->build({
+ source => 'Borrower',
+ value => {
+ lastseen => '2001-01-01',
+ password => hash_password( PATRON_PW ),
+ branchcode => $branchcode,
+ },
+ });
+ my $cardnum = $seen_patron->{cardnumber};
+ my $sip_patron = C4::SIP::ILS::Patron->new( $cardnum );
+ $findpatron = $sip_patron;
+
+ my $siprequest = PATRON_INFO. 'engYYYYMMDDZZZZHHMMSS'.'Y '.
+ FID_INST_ID. $branchcode. '|'.
+ FID_PATRON_ID. $cardnum. '|'.
+ FID_PATRON_PWD. PATRON_PW. '|';
+ my $msg = C4::SIP::Sip::MsgType->new( $siprequest, 0 );
+
+ my $server = { ils => $mocks->{ils} };
+ undef $response;
+ t::lib::Mocks::mock_preference( 'TrackLastPatronActivity', '' );
+ $msg->handle_patron_info( $server );
+
+ isnt( $response, undef, 'At least we got a response.' );
+ my $respcode = substr( $response, 0, 2 );
+ is( $respcode, PATRON_INFO_RESP, 'Response code fine' );
+ $seen_patron = Koha::Patrons->find({ cardnumber => $seen_patron->{cardnumber} });
+ is( output_pref({str => $seen_patron->lastseen(), dateonly => 1}), output_pref({str => '2001-01-01', dateonly => 1}),'Last seen not updated if not tracking patrons');
+ undef $response;
+ t::lib::Mocks::mock_preference( 'TrackLastPatronActivity', '1' );
+ $msg->handle_patron_info( $server );
+
+ isnt( $response, undef, 'At least we got a response.' );
+ $respcode = substr( $response, 0, 2 );
+ is( $respcode, PATRON_INFO_RESP, 'Response code fine' );
+ $seen_patron = Koha::Patrons->find({ cardnumber => $seen_patron->cardnumber() });
+ is( output_pref({str => $seen_patron->lastseen(), dateonly => 1}), output_pref({dt => dt_from_string(), dateonly => 1}),'Last seen updated if tracking patrons');
+ $schema->storage->txn_rollback;
+
+};