11package com .github .khakers .modmailviewer ;
22
33import org .junit .jupiter .api .Assertions ;
4+ import org .junit .jupiter .api .Test ;
45import org .junit .jupiter .params .ParameterizedTest ;
56import org .junit .jupiter .params .provider .CsvFileSource ;
67
@@ -13,7 +14,87 @@ void version_ShouldParseAllValidSemver(String input){
1314 }
1415 @ ParameterizedTest ()
1516 @ CsvFileSource (resources = "/invalidSemver.csv" )
16- void version_ShouldNotParseInvalidSemver (String input ){
17+ void version_ShouldNotParseInvalidSemver (String input ) {
1718 Assertions .assertThrows (IllegalStateException .class , () -> new Version (input ));
1819 }
20+
21+ //Test release comparisons
22+ @ Test
23+ void version_NewerMajorReleaseIsNewer () {
24+ var oldVersion = new Version ("1.0.0" );
25+ var newerVersion = new Version ("2.0.0" );
26+ Assertions .assertTrue (newerVersion .isNewerThan (oldVersion ));
27+ }
28+
29+ @ Test
30+ void version_OlderMajorReleaseIsOlder () {
31+ var oldVersion = new Version ("1.0.0" );
32+ var newerVersion = new Version ("2.0.0" );
33+ Assertions .assertTrue (oldVersion .isOlderThan (newerVersion ));
34+ }
35+
36+ @ Test
37+ void version_NewerMinorReleaseIsNewer () {
38+ var oldVersion = new Version ("1.0.0" );
39+ var newerVersion = new Version ("1.1.0" );
40+ Assertions .assertTrue (newerVersion .isNewerThan (oldVersion ));
41+ }
42+
43+ @ Test
44+ void version_OlderMinorReleaseIsOlder () {
45+ var oldVersion = new Version ("1.0.0" );
46+ var newerVersion = new Version ("1.1.0" );
47+ Assertions .assertTrue (oldVersion .isOlderThan (newerVersion ));
48+ }
49+
50+ @ Test
51+ void version_NewerPatchReleaseIsNewer () {
52+ var oldVersion = new Version ("1.0.0" );
53+ var newerVersion = new Version ("1.0.1" );
54+ Assertions .assertTrue (newerVersion .isNewerThan (oldVersion ));
55+ }
56+
57+ @ Test
58+ void version_OlderPatchReleaseIsOlder () {
59+ var oldVersion = new Version ("1.0.0" );
60+ var newerVersion = new Version ("1.0.1" );
61+ Assertions .assertTrue (oldVersion .isOlderThan (newerVersion ));
62+ }
63+
64+ @ Test
65+ void version_NewerPrereleaseIsNewer () {
66+ var olderPrerelease = new Version ("1.0.0-alpha.1" );
67+ var newerPrerelease = new Version ("1.0.0-alpha.2" );
68+ // newer version should be greater than old version
69+ Assertions .assertTrue (newerPrerelease .isNewerThan (olderPrerelease ), "Newer pre-release version should be greater than older prerelease version" );
70+ }
71+ @ Test
72+ void version_OlderPrereleaseIsOlder () {
73+ var oldVersion = new Version ("1.0.0-alpha.1" );
74+ var newerVersion = new Version ("1.0.0-alpha.2" );
75+ // newer version should be greater than old version
76+ Assertions .assertTrue (oldVersion .isOlderThan (newerVersion ), "Newer pre-release version should be greater than older prerelease version" );
77+ }
78+ @ Test
79+ void version_IdenticalPrereleaseVersionsAreSame () {
80+ var version = new Version ("1.0.0-alpha.1" );
81+ var version1 = new Version ("1.0.0-alpha.1" );
82+ Assertions .assertFalse (version .isOlderThan (version1 ));
83+ Assertions .assertFalse (version .isNewerThan (version1 ));
84+ }
85+ @ Test
86+ void version_StableGreaterThanPrerelease () {
87+ var stable = new Version ("1.0.0" );
88+ var prerelease = new Version ("1.0.0-alpha" );
89+ // stable should be greater than prerelease
90+ Assertions .assertTrue (stable .isNewerThan (prerelease ), "Stable should be newer than pre-release of the same version" );
91+ }
92+
93+ @ Test
94+ void version_PrereleaseLessThanStable () {
95+ var stable = new Version ("1.0.0" );
96+ var prerelease = new Version ("1.0.0-alpha" );
97+ // prerelease should be less than stable
98+ Assertions .assertTrue (prerelease .isOlderThan (stable ), "Pre-release should be older than stable of the same version" );
99+ }
19100}
0 commit comments