Moved Survey.pm's "survey" and "response" properties to private hash

vars and added accessors.

So that you don't end up with mind-bending code that looks like:
$survey->survey->{survey}
This commit is contained in:
Patrick Donelan 2009-02-11 09:26:27 +00:00
parent 316d133a02
commit 8d7599d781
2 changed files with 64 additions and 64 deletions

View file

@ -39,23 +39,23 @@ isa_ok($survey, 'WebGUI::Asset::Wobject::Survey');
# Load bare-bones survey, containing a single section (S0)
$survey->loadSurveyJSON();
$survey->survey->update([0], { variable => 'S0' });
$survey->surveyJSON->update([0], { variable => 'S0' });
# Add 2 questions to S0
$survey->survey->newObject([0]); # S0Q0
$survey->survey->update([0,0], { variable => 'S0Q0' });
$survey->survey->newObject([0]); # S0Q1
$survey->survey->update([0,1], { variable => 'S0Q1' });
$survey->surveyJSON->newObject([0]); # S0Q0
$survey->surveyJSON->update([0,0], { variable => 'S0Q0' });
$survey->surveyJSON->newObject([0]); # S0Q1
$survey->surveyJSON->update([0,1], { variable => 'S0Q1' });
# Add a new section (S1)
$survey->survey->newObject([]); # S1
$survey->survey->update([1], { variable => 'S1' });
$survey->surveyJSON->newObject([]); # S1
$survey->surveyJSON->update([1], { variable => 'S1' });
# Add 2 questions to S1
$survey->survey->newObject([1]); # S1Q0
$survey->survey->update([1,0], { variable => 'S1Q0' });
$survey->survey->newObject([1]); # S1Q1
$survey->survey->update([1,1], { variable => 'S1Q1' });
$survey->surveyJSON->newObject([1]); # S1Q0
$survey->surveyJSON->update([1,0], { variable => 'S1Q0' });
$survey->surveyJSON->newObject([1]); # S1Q1
$survey->surveyJSON->update([1,1], { variable => 'S1Q1' });
# Persist to db
$survey->saveSurveyJSON();
@ -64,7 +64,7 @@ $survey->saveSurveyJSON();
$session->user( { userId =>3 } );
$survey->getResponseId( { noCookie => 1 }); # triggers loadBothJSON()
#for my $address (@{ $survey->response->surveyOrder }) {
#for my $address (@{ $survey->responseJSON->surveyOrder }) {
# diag (Dumper $address);
#}
@ -73,7 +73,7 @@ $survey->getResponseId( { noCookie => 1 }); # triggers loadBothJSON()
# Check a simple www_jumpTo request
WebGUI::Test->getPage( $survey, 'www_jumpTo', { formParams => {id => '0'} } );
is( $session->http->getStatus, '201', 'Page request ok' ); # why is "201 - created" status used??
is($survey->response->nextResponse, 0, 'S0 is the first response');
is($survey->responseJSON->nextResponse, 0, 'S0 is the first response');
tie my %expectedSurveyOrder, 'Tie::IxHash';
%expectedSurveyOrder = (
@ -88,7 +88,7 @@ $survey->getResponseId( { noCookie => 1 }); # triggers loadBothJSON()
while (my ($id, $index) = each %expectedSurveyOrder) {
WebGUI::Test->getPage( $survey, 'www_jumpTo', { formParams => {id => $id} } );
$survey->loadSurveyJSON();
is($survey->response->nextResponse, $index, "jumpTo($id) sets nextResponse to $index");
is($survey->responseJSON->nextResponse, $index, "jumpTo($id) sets nextResponse to $index");
}
}