INSERT INTO housing (reg_id, nights, parking, room_size, roommate, gender) ( '250', '{"Thursday","Friday","Saturday"}', '{"Friday"}', 'double', 'Kerrie', '' ); #### #!/usr/bin/perl -w # t/23_RegistrantNeeds.t use strict; use warnings; use diagnostics; use Test::More tests => 6; use Test::DatabaseRow; my $reg = Registration::WWW::RegForm->new(); my $dbh = $reg->dbh(); local $Test::DatabaseRow::dbh = $dbh; my %test_registrants = get_test_cases(); my @test_cases = keys %test_registrants; my @registrant_dummy = ("Crash","D.","Dummy","PhD","chip","Fiat","whack"); my @hsg_fields = ('nights', 'parking', 'room_size', 'roommate', 'gender'); my ($field,$tmp,@choices); . . . foreach my $test_case(@test_cases) { my $now = `date +%r`; $now =~ s/\s+$// ; my @fields = keys %{$test_registrants{$test_case}}; $registrant_dummy[0] = $test_case; $registrant_dummy[1] = $now; my $reg_id = $reg->insert_registrant($dbh,@registrant_dummy); my @hsg_values = (); foreach $field (@hsg_fields){ if ( $field eq 'nights' || $field eq 'parking') { @choices = split / /, $test_registrants{$test_case}{$field}; $test_registrants{$test_case}{$field} = Registration::DB->format_array(\@choices); } # print $test_registrants{$test_case}{$field},"\n"; push(@hsg_values,$test_registrants{$test_case}{$field}); } # foreach (@hsg_values) { print "$_ \n"; } my $hsg_values = \@hsg_values; test_insert_hsg($reg,$dbh,$reg_id,$test_case,$hsg_values); . . . } . . . sub test_insert_hsg { my ($reg,$dbh,$reg_id,$test_case,$hsg_values) = @_; $reg->insert_housing($dbh,$reg_id,$hsg_values); my %test_registrants = get_test_cases(); my $nights_expected = Registration::DB->format_array(split / /,$test_registrants{$test_case}{nights}); $nights_expected =~ s/"//g; my $parking_expected = Registration::DB->format_array(split / /,$test_registrants{$test_case}{parking}); $parking_expected =~ s/"//g; row_ok( table => "housing", where => { '=' => { reg_id => "$reg_id" }, }, tests => { 'eq' => { nights => $nights_expected, parking => $parking_expected, room_size => $test_registrants{$test_case}{room_size}, roommate => $test_registrants{$test_case}{roommate}, gender => $test_registrants{$test_case}{gender}, }, }, label => "RegID $reg_id: insert new row into housing table." ); } #### sub insert_housing { my $self = shift; my $dbh = shift; my $reg_id = shift; my $hsg_values = shift; my($sql,$sth); ###l4p my $logger = Log::Log4perl->get_logger('RegForm.insert_housing'); ###l4p $logger->info("\$hsg_values is @$hsg_values."); my $hsg_fields = "reg_id, nights, parking, room_size, roommate, gender"; $sql = "INSERT INTO housing ($hsg_fields) VALUES(?,?,?,?,?,?);"; $sth = $dbh->prepare($sql); $sth->execute($reg_id,@$hsg_values); ###l4p $logger->info("RegID $reg_id: Just inserted data into housing table."); return 1; }