Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 4571a0a

Browse files
committed
Fixed code and unit tests.
Added missing tests.
1 parent de98267 commit 4571a0a

6 files changed

Lines changed: 49 additions & 12 deletions

File tree

source/core/ut_utils.pkb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -386,14 +386,14 @@ create or replace package body ut_utils is
386386

387387
function to_version(p_version_no varchar2) return t_version is
388388
l_result t_version;
389-
c_version_part_regex varchar2(20) := '([0-9]+)';
389+
c_version_part_regex varchar2(20) := '[0-9]+';
390390
begin
391391

392-
if regexp_like(p_version_no,'v?([0-9]+(\.|$)){4}') then
393-
l_result.major := regexp_substr(p_version_no, c_version_part_regex, 1, 1, subexpression => 1);
394-
l_result.minor := regexp_substr(p_version_no, c_version_part_regex, 1, 2, subexpression => 1);
395-
l_result.bugfix := regexp_substr(p_version_no, c_version_part_regex, 1, 3, subexpression => 1);
396-
l_result.build := regexp_substr(p_version_no, c_version_part_regex, 1, 4, subexpression => 1);
392+
if regexp_like(p_version_no,'v?([0-9]+(\.|$)){3,4}') then
393+
l_result.major := regexp_substr(p_version_no, c_version_part_regex, 1, 1);
394+
l_result.minor := regexp_substr(p_version_no, c_version_part_regex, 1, 2);
395+
l_result.bugfix := regexp_substr(p_version_no, c_version_part_regex, 1, 3);
396+
l_result.build := regexp_substr(p_version_no, c_version_part_regex, 1, 4);
397397
end if;
398398
return l_result;
399399
end;

source/core/ut_utils.pks

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,10 @@ create or replace package ut_utils authid definer is
9898
gc_null_string constant varchar2(4) := 'NULL';
9999

100100
type t_version is record(
101-
major positive,
102-
minor positive,
103-
bugfix positive,
104-
build positive
101+
major natural,
102+
minor natural,
103+
bugfix natural,
104+
build natural
105105
);
106106

107107

test/install_tests.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
@@ut_reporters/test_coverage.pks
99
@@ut_reporters/test_coverage_sonar_reporter.pks
1010
@@ut_reporters/test_coveralls_reporter.pks
11+
@@ut_runner/test_ut_runner.pks
1112

1213
@core.pkb
1314
@ut_utils/test_ut_utils.pkb
@@ -18,6 +19,7 @@
1819
@@ut_reporters/test_coverage.pkb
1920
@@ut_reporters/test_coverage_sonar_reporter.pkb
2021
@@ut_reporters/test_coveralls_reporter.pkb
22+
@@ut_runner/test_ut_runner.pkb
2123

2224
show errors
2325

test/ut_runner/test_ut_runner.pkb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
create or replace package body test_ut_runner is
2+
3+
procedure version_comp_check_compare is
4+
begin
5+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.0.0.0','v3.0.0.0') ).to_be_true;
6+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.0.0.0','v3.0.123.0') ).to_be_true;
7+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.0.0.0','v3.123.0.0') ).to_be_true;
8+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.0.0.0','v3.13.31.0') ).to_be_true;
9+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.0.1.0','v3.0.0.0') ).to_be_false;
10+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.1.0.0','v3.0.0.0') ).to_be_false;
11+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.0.0.0','v2.0.0.0') ).to_be_false;
12+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.0.0.0','v4.0.0.0') ).to_be_false;
13+
end;
14+
procedure version_comp_check_ignore is
15+
begin
16+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.0.0.123','v3.0.0.0') ).to_be_true;
17+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.0.0.0','v3.0.0.123') ).to_be_true;
18+
ut.expect( ut3.ut_runner.version_compatibility_check('v3.0.0','v3.0.0.0') ).to_be_true;
19+
end;
20+
21+
end;
22+
/

test/ut_runner/test_ut_runner.pks

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
create or replace package test_ut_runner is
2+
3+
--%suite(ut_runner)
4+
--%suitepath(utplsql.core)
5+
6+
--%test(version_compatibility_check compares major minor bigfix number)
7+
procedure version_comp_check_compare;
8+
9+
--%test(version_compatibility_check ignores build number)
10+
procedure version_comp_check_ignore;
11+
12+
end;
13+
/

test/ut_utils/test_ut_utils.pkb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,9 +303,9 @@ end;';
303303
procedure test_to_version_split is
304304
l_version ut3.ut_utils.t_version;
305305
begin
306-
l_version := ut3.ut_utils.to_version('v034.123.0456.0333');
306+
l_version := ut3.ut_utils.to_version('v034.0.0456.0333');
307307
ut.expect(l_version.major).to_equal(34);
308-
ut.expect(l_version.minor).to_equal(123);
308+
ut.expect(l_version.minor).to_equal(0);
309309
ut.expect(l_version.bugfix).to_equal(456);
310310
ut.expect(l_version.build).to_equal(333);
311311
end;

0 commit comments

Comments
 (0)