@@ -3,7 +3,7 @@ use strict;
33use warnings;
44use utf8;
55use lib ' lib' ;
6- use Test::More tests => 4 ;
6+ use Test::More tests => 6 ;
77use Path::Tiny;
88use JSON::XS;
99use Text::CSV_XS;
@@ -134,6 +134,22 @@ my $errors_obs_invalid =
134134ok( scalar (@$errors_obs_invalid ) > 0,
135135 ' Invalid observation CSV returns errors' );
136136
137+ # (5) Person invalid CSV due to varchar length violation:
138+ # person_source_value exceeds 50 characters.
139+ my $person_invalid_varchar_csv = $sections {' CSV_person_invalid_varchar' } // ' ' ;
140+ my $errors_person_invalid_varchar =
141+ validate_csv_from_text( $validator , $person_invalid_varchar_csv , $person_schema , ' ,' );
142+ ok( scalar (@$errors_person_invalid_varchar ) > 0,
143+ ' Person CSV with varchar length violation returns errors' );
144+
145+ # (6) Observation invalid CSV due to varchar length violation:
146+ # value_as_string exceeds 60 characters.
147+ my $obs_invalid_varchar_csv = $sections {' CSV_observation_invalid_varchar' } // ' ' ;
148+ my $errors_obs_invalid_varchar =
149+ validate_csv_from_text( $validator , $obs_invalid_varchar_csv , $obs_schema , ' ,' );
150+ ok( scalar (@$errors_obs_invalid_varchar ) > 0,
151+ ' Observation CSV with varchar length violation returns errors' );
152+
137153done_testing();
138154
139155__DATA__
@@ -179,6 +195,11 @@ person_id,gender_concept_id,year_of_birth,month_of_birth,day_of_birth,birth_date
179195A,8532,1963,12,31,"1966-12-31T00:00:00Z",8516,0,\N,\N,\N,source1,F,0,black,0,west_indian,0
180196__END_CSV_person_invalid__
181197
198+ __CSV_person_invalid_varchar__
199+ person_id,gender_concept_id,year_of_birth,month_of_birth,day_of_birth,birth_datetime,race_concept_id,ethnicity_concept_id,location_id,provider_id,care_site_id,person_source_value,gender_source_value,gender_source_concept_id,race_source_value,race_source_concept_id,ethnicity_source_value,ethnicity_source_concept_id
200+ 2,8532,1963,12,31,"1966-12-31T00:00:00Z",8516,0,\N,\N,\N,"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",F,0,black,0,west_indian,0
201+ __END_CSV_person_invalid_varchar__
202+
182203__CSV_observation_valid__
183204observation_id,person_id,observation_date,observation_datetime,value_as_number,value_as_string
1842051,1,1963-12-31,"1963-12-31T00:00:00Z",123.45,valid observation
@@ -188,3 +209,8 @@ __CSV_observation_invalid__
188209observation_id,person_id,observation_date,observation_datetime,value_as_number,value_as_string
189210X,1,1963-12-31,"not a timestamp",abc,invalid observation
190211__END_CSV_observation_invalid__
212+
213+ __CSV_observation_invalid_varchar__
214+ observation_id,person_id,observation_date,observation_datetime,value_as_number,value_as_string
215+ 2,1,1963-12-31,"1963-12-31T00:00:00Z",123.45,"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
216+ __END_CSV_observation_invalid_varchar__
0 commit comments