use Test::More; use Reporter::Class; require_ok( 'Reporter::Test' ); # Data::Printer, Mooo, etc use Reporter::Test; my $t = Reporter::Test->new; use Data::Printer; # ddp %ENV; my $invalid_lab_number = { lab_number => 200, }; my $valid_lab_number = { lab_number => '200/15' }; my %report = ( status => 'new', specimen_quality => 'poor', diagnosis_id => 1, ); my $app_validator = $t->app->validator; # HTML::FormHandler my $model_validator = $t->app->model->validator; # DFV { # invalid lab number (Data::FormValidator): my $res = $model_validator->validate( search => $invalid_lab_number ); # p $res; is( $res->{failed}, 1, 'OK: lab number validation failed' ); } { # valid lab number (Data::FormValidator): my $res = $model_validator->validate( search => $valid_lab_number ); # p $res; is( $res->{success}, 1, 'OK: lab number validation passed'); } { # invalid lab number (HTML::FormHandler): my $res = $app_validator->validate( search_form => $invalid_lab_number ); # p $res; is( $res->{failed}, 1, 'OK: lab number validation failed' ); } { # valid lab number (HTML::FormHandler): my $res = $app_validator->validate( search_form => $valid_lab_number ); # p $res; is( $res->{success}, 1, 'OK: lab number validation passed' ); } { # valid report form (HTML::FormHandler): my $res = $app_validator->validate( report_form => \%report ); # p $res; is( $res->{success}, 1, 'OK: report form validation passed'); } { # invalid report form (HTML::FormHandler): local $report{diagnosis_id} = undef; my $res = $app_validator->validate( report_form => \%report ); # p $res; is( $res->{failed}, 1, 'OK: report form validation failed'); } { # valid report form (Data::FormValidator): my $res = $model_validator->validate( report => \%report ); # p $res; is( $res->{success}, 1, 'OK: report form validation passed'); } { # invalid report form (Data::FormValidator): local $report{diagnosis_id} = undef; my $res = $model_validator->validate( report => \%report ); # p $res; is( $res->{failed}, 1, 'OK: report form validation failed'); } { # non-validated params ignored (HTML::FormHandler): local $report{dog} = 1; my $res = $app_validator->validate( report_form => \%report ); # p $res; isnt( $res->{valid}->{dog}, 1, 'OK: non-validated param ignored' ); } { # non-validated params ignored (Data::FormValidator): local $report{cat} = 1; my $res = $model_validator->validate( report => \%report ); # p $res; isnt( $res->{valid}->{cat}, 1, 'OK: non-validated param ignored' ); } { # invalid report form (Data::FormValidator): local $report{_require_biopsy_details} = 1; my $res = $model_validator->validate( report => \%report ); # p $res; is( $res->{failed}, 1, 'OK: report form validation failed'); } { # invalid report form (HTML::FormHandler): local $report{_require_biopsy_details} = 1; my $res = $app_validator->validate( report_form => \%report ); # p $res; is( $res->{failed}, 1, 'OK: report form validation failed'); } { # valid report form (Data::FormValidator): local $report{_require_biopsy_details} = 1; local $report{biopsy_site} = 'biopsy details'; my $res = $model_validator->validate( report => \%report ); # p $res; is( $res->{success}, 1, 'OK: report form validation passed'); } { # valid report form (HTML::FormHandler): local $report{_require_biopsy_details} = 1; local $report{biopsy_site} = 'biopsy details'; my $res = $app_validator->validate( report_form => \%report ); # p $res; is( $res->{success}, 1, 'OK: report form validation passed'); } { # invalid report form (Data::FormValidator): local $report{_require_gross_description} = 1; my $res = $model_validator->validate( report => \%report ); # p $res; is( $res->{failed}, 1, 'OK: report form validation failed'); } { # invalid report form (HTML::FormHandler): local $report{_require_gross_description} = 1; my $res = $app_validator->validate( report_form => \%report ); # p $res; is( $res->{failed}, 1, 'OK: report form validation failed'); } { # valid report form (Data::FormValidator): local $report{_require_gross_description} = 1; local $report{gross_description} = 'gross description'; my $res = $model_validator->validate( report => \%report ); # p $res; is( $res->{success}, 1, 'OK: report form validation passed'); } { # valid report form (HTML::FormHandler): local $report{_require_gross_description} = 1; local $report{gross_description} = 'gross description'; my $res = $app_validator->validate( report_form => \%report ); # p $res; is( $res->{success}, 1, 'OK: report form validation passed'); } { # optional field (HTML::FormHandler): local $report{morphology} = 'morphological description'; my $res = $app_validator->validate( report_form => \%report ); # p $res; is( $res->{valid}->{morphology}, $report{morphology}, 'OK: optional field present'); } { # optional field (Data::FormValidator): local $report{comment} = 'comment text block'; my $res = $model_validator->validate( report => \%report ); # p $res; is( $res->{valid}->{comment}, $report{comment}, 'OK: optional field present'); } { # invalid field (HTML::FormHandler): local $report{secondary_diagnosis_id} = 'word'; my $res = $app_validator->validate( report_form => \%report ); # p $res; is( $res->{failed}, 1, 'OK: report form validation failed'); } SKIP: { # valid field (Data::FormValidator): skip('DFV profile needs constraint_methods',1); local $report{secondary_diagnosis_id} = 'word'; my $res = $model_validator->validate( report => \%report ); # p $res; is( $res->{failed}, 1, 'OK: report form validation failed'); } done_testing(23);