@@ -48,126 +48,171 @@ public static function versionsProvider()
48
48
'version ' => '' ,
49
49
'keep_stability_flag ' => false ,
50
50
'normalized ' => '' ,
51
+ 'major ' => '' ,
52
+ 'intermediate ' => '' ,
51
53
'stable ' => true ,
52
54
'dev ' => false ,
53
55
],
54
56
[
55
57
'version ' => '9.5+2.0 ' ,
56
58
'keep_stability_flag ' => false ,
57
59
'normalized ' => '9.5+2.0 ' , // not semver compatible, cannot be normalized
60
+ 'major ' => '9 ' ,
61
+ 'intermediate ' => '9.5 ' ,
58
62
'stable ' => true ,
59
63
'dev ' => false ,
60
64
],
61
65
[
62
66
'version ' => '0.89 ' ,
63
67
'keep_stability_flag ' => false ,
64
68
'normalized ' => '0.89.0 ' ,
69
+ 'major ' => '0 ' ,
70
+ 'intermediate ' => '0.89 ' ,
65
71
'stable ' => true ,
66
72
'dev ' => false ,
67
73
],
68
74
[
69
75
'version ' => '9.2 ' ,
70
76
'keep_stability_flag ' => false ,
71
77
'normalized ' => '9.2.0 ' ,
78
+ 'major ' => '9 ' ,
79
+ 'intermediate ' => '9.2 ' ,
72
80
'stable ' => true ,
73
81
'dev ' => false ,
74
82
],
75
83
[
76
84
'version ' => '9.2 ' ,
77
85
'keep_stability_flag ' => true , // should have no effect
78
86
'normalized ' => '9.2.0 ' ,
87
+ 'major ' => '9 ' ,
88
+ 'intermediate ' => '9.2 ' ,
79
89
'stable ' => true ,
80
90
'dev ' => false ,
81
91
],
82
92
[
83
93
'version ' => '9.4.1.1 ' ,
84
94
'keep_stability_flag ' => false ,
85
95
'normalized ' => '9.4.1 ' ,
96
+ 'major ' => '9 ' ,
97
+ 'intermediate ' => '9.4 ' ,
86
98
'stable ' => true ,
87
99
'dev ' => false ,
88
100
],
89
101
[
90
102
'version ' => '10.0.0-dev ' ,
91
103
'keep_stability_flag ' => false ,
92
104
'normalized ' => '10.0.0 ' ,
105
+ 'major ' => '10 ' ,
106
+ 'intermediate ' => '10.0 ' ,
93
107
'stable ' => false ,
94
108
'dev ' => true ,
95
109
],
96
110
[
97
111
'version ' => '10.0.0-dev ' ,
98
112
'keep_stability_flag ' => true ,
99
113
'normalized ' => '10.0.0-dev ' ,
114
+ 'major ' => '10 ' ,
115
+ 'intermediate ' => '10.0 ' ,
100
116
'stable ' => false ,
101
117
'dev ' => true ,
102
118
],
103
119
[
104
120
'version ' => '10.0.0-alpha ' ,
105
121
'keep_stability_flag ' => false ,
106
122
'normalized ' => '10.0.0 ' ,
123
+ 'major ' => '10 ' ,
124
+ 'intermediate ' => '10.0 ' ,
107
125
'stable ' => false ,
108
126
'dev ' => false ,
109
127
],
110
128
[
111
129
'version ' => '10.0.0-alpha2 ' ,
112
130
'keep_stability_flag ' => true ,
113
131
'normalized ' => '10.0.0-alpha2 ' ,
132
+ 'major ' => '10 ' ,
133
+ 'intermediate ' => '10.0 ' ,
114
134
'stable ' => false ,
115
135
'dev ' => false ,
116
136
],
117
137
[
118
138
'version ' => '10.0.0-beta1 ' ,
119
139
'keep_stability_flag ' => false ,
120
140
'normalized ' => '10.0.0 ' ,
141
+ 'major ' => '10 ' ,
142
+ 'intermediate ' => '10.0 ' ,
121
143
'stable ' => false ,
122
144
'dev ' => false ,
123
145
],
124
146
[
125
147
'version ' => '10.0.0-beta1 ' ,
126
148
'keep_stability_flag ' => true ,
127
149
'normalized ' => '10.0.0-beta1 ' ,
150
+ 'major ' => '10 ' ,
151
+ 'intermediate ' => '10.0 ' ,
128
152
'stable ' => false ,
129
153
'dev ' => false ,
130
154
],
131
155
[
132
156
'version ' => '10.0.0-rc3 ' ,
133
157
'keep_stability_flag ' => false ,
134
158
'normalized ' => '10.0.0 ' ,
159
+ 'major ' => '10 ' ,
160
+ 'intermediate ' => '10.0 ' ,
135
161
'stable ' => false ,
136
162
'dev ' => false ,
137
163
],
138
164
[
139
165
'version ' => '10.0.0-rc ' ,
140
166
'keep_stability_flag ' => true ,
141
167
'normalized ' => '10.0.0-rc ' ,
168
+ 'major ' => '10 ' ,
169
+ 'intermediate ' => '10.0 ' ,
142
170
'stable ' => false ,
143
171
'dev ' => false ,
144
172
],
145
173
[
146
174
'version ' => '10.0.3 ' ,
147
175
'keep_stability_flag ' => true ,
148
176
'normalized ' => '10.0.3 ' ,
177
+ 'major ' => '10 ' ,
178
+ 'intermediate ' => '10.0 ' ,
149
179
'stable ' => true ,
150
180
'dev ' => false ,
151
181
],
152
182
];
153
183
}
154
184
155
185
#[DataProvider('versionsProvider ' )]
156
- public function testGetNormalizeVersion (string $ version , bool $ keep_stability_flag , string $ normalized , bool $ stable , bool $ dev ): void
186
+ public function testGetNormalizeVersion (string $ version , bool $ keep_stability_flag , string $ normalized , string $ major , string $ intermediate , bool $ stable , bool $ dev ): void
157
187
{
158
188
$ version_parser = new \Glpi \Toolbox \VersionParser ();
159
189
$ this ->assertEquals ($ normalized , $ version_parser ->getNormalizedVersion ($ version , $ keep_stability_flag ));
160
190
}
161
191
162
192
#[DataProvider('versionsProvider ' )]
163
- public function testIsStableRelease (string $ version , bool $ keep_stability_flag , string $ normalized , bool $ stable , bool $ dev ): void
193
+ public function testGetMajorVersion (string $ version , bool $ keep_stability_flag , string $ normalized , string $ major , string $ intermediate , bool $ stable , bool $ dev ): void
194
+ {
195
+ $ version_parser = new \Glpi \Toolbox \VersionParser ();
196
+ $ this ->assertEquals ($ major , $ version_parser ->getMajorVersion ($ version ));
197
+ }
198
+
199
+ #[DataProvider('versionsProvider ' )]
200
+ public function testGetIntermediateVersion (string $ version , bool $ keep_stability_flag , string $ normalized , string $ major , string $ intermediate , bool $ stable , bool $ dev ): void
201
+ {
202
+ $ version_parser = new \Glpi \Toolbox \VersionParser ();
203
+ $ this ->assertEquals ($ intermediate , $ version_parser ->getIntermediateVersion ($ version ));
204
+ }
205
+
206
+
207
+ #[DataProvider('versionsProvider ' )]
208
+ public function testIsStableRelease (string $ version , bool $ keep_stability_flag , string $ normalized , string $ major , string $ intermediate , bool $ stable , bool $ dev ): void
164
209
{
165
210
$ version_parser = new \Glpi \Toolbox \VersionParser ();
166
211
$ this ->assertSame ($ stable , $ version_parser ->isStableRelease ($ version ));
167
212
}
168
213
169
214
#[DataProvider('versionsProvider ' )]
170
- public function testIsDevVersion (string $ version , bool $ keep_stability_flag , string $ normalized , bool $ stable , bool $ dev ): void
215
+ public function testIsDevVersion (string $ version , bool $ keep_stability_flag , string $ normalized , string $ major , string $ intermediate , bool $ stable , bool $ dev ): void
171
216
{
172
217
$ version_parser = new \Glpi \Toolbox \VersionParser ();
173
218
$ this ->assertSame ($ dev , $ version_parser ->isDevVersion ($ version ));
0 commit comments