# Copyright (c) 2006-2008 bivio Software, Inc. All Rights Reserved. # # Visit http://www.bivio.biz for more info. # # This library is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2.1 of the # License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; If not, you may get a copy from: # http://www.opensource.org/licenses/lgpl-license.html # # $Id: Reload.bunit,v 1.4 2008/11/07 21:54:22 nagler Exp $ use lib '.'; my($d) = Bivio::IO::File->mkdir_p( Bivio::IO::File->rm_rf( Bivio::IO::File->absolute_path('Reload'))); my($pm) = sub { my($module, $return) = @_; write_file("$d/$module.pm", <<"EOF"); package Reload::$module; sub value {'$return'} 1; EOF return "Reload::$module"; }; foreach my $c (qw(BConf T1 T2)) { $pm->($c, 'init'); class("Reload::$c"); } Request()->initialize_fully; [ class() => [ { method => 'handler', compute_params => sub { my($case, $params) = @_; sleep(1); return [map($pm->(@$_), @$params)] }, compute_return => sub { return [map($_->value, @{shift->get('params')})]; }, } => [ [] => [], [[T1 => 3]] => [3], [[T1 => 3], [T2 => 4]] => [3, 4], [] => [], ], ], ];