@@ -7,6 +7,7 @@ CLASS ltcl_semver DEFINITION FOR TESTING RISK LEVEL HARMLESS
77 comparisons FOR TESTING RAISING /apmg/cx_error,
88 equality FOR TESTING RAISING /apmg/cx_error,
99 to_string FOR TESTING RAISING /apmg/cx_error,
10+ valid_versions FOR TESTING RAISING /apmg/cx_error,
1011 invalid_versions FOR TESTING RAISING /apmg/cx_error,
1112 options FOR TESTING RAISING /apmg/cx_error,
1213 really_big FOR TESTING RAISING /apmg/cx_error,
@@ -69,6 +70,46 @@ CLASS ltcl_semver IMPLEMENTATION.
6970
7071 ENDMETHOD .
7172
73+ METHOD valid_versions .
74+
75+ LOOP AT /apmg/cl_semver_fixtures=>valid_versions( ) INTO DATA (valid_version ).
76+ DATA (msg ) = valid_version-version.
77+
78+ TRY .
79+ DATA (s ) = /apmg/cl_semver=>create( version = valid_version-version ).
80+
81+ cl_abap_unit_assert=>assert_equals(
82+ act = s->major
83+ exp = valid_version-major
84+ msg = msg ).
85+ cl_abap_unit_assert=>assert_equals(
86+ act = s->minor
87+ exp = valid_version-minor
88+ msg = msg ).
89+ cl_abap_unit_assert=>assert_equals(
90+ act = s->patch
91+ exp = valid_version-patch
92+ msg = msg ).
93+ cl_abap_unit_assert=>assert_equals(
94+ act = s->prerelease
95+ exp = valid_version-prerelease
96+ msg = msg ).
97+ cl_abap_unit_assert=>assert_equals(
98+ act = s->build
99+ exp = valid_version-build
100+ msg = msg ).
101+ cl_abap_unit_assert=>assert_equals(
102+ act = s->raw
103+ exp = valid_version-version
104+ msg = msg ).
105+
106+ CATCH /apmg/cx_error.
107+ cl_abap_unit_assert=>fail( msg = msg ).
108+ ENDTRY .
109+ ENDLOOP .
110+
111+ ENDMETHOD .
112+
72113 METHOD invalid_versions .
73114 " throws when presented with garbage
74115
@@ -205,8 +246,8 @@ CLASS ltcl_semver IMPLEMENTATION.
205246
206247 TRY .
207248 v->inc(
208- release_type = 'prerelease'
209- identifier = 'hot/mess' ).
249+ release_type = 'prerelease'
250+ identifier = 'hot/mess' ).
210251 CATCH /apmg/cx_error ##NO_HANDLER .
211252 " ignore but check that the version has not changed
212253 ENDTRY .
0 commit comments