@@ -308,8 +308,28 @@ public void TestGTMatcherReturnsTrueWhenAttributeValueIsGreaterThanConditionValu
308308 Assert . That ( GTCondition . Evaluate ( null , new UserAttributes { { "distance_gt" , 15 } } , Logger ) , Is . True ) ;
309309 }
310310
311+ [ Test ]
312+ public void TestSemVerGTTargetBetaComplex ( )
313+ {
314+ var semverGTCondition = new BaseCondition { Name = "semversion_gt" , Value = "2.1.3-beta+1" , Match = "semver_gt" , Type = "custom_attribute" } ;
315+ Assert . IsTrue ( semverGTCondition . Evaluate ( null , new UserAttributes { { "semversion_gt" , "2.1.3-beta+1.2.3" } } , Logger ) ?? false ) ;
316+ }
317+
318+ [ Test ]
319+ public void TestSemVerGTCompareAgainstPreReleaseToPreRelease ( )
320+ {
321+ var semverGTCondition = new BaseCondition { Name = "semversion_gt" , Value = "3.7.1-prerelease+build" , Match = "semver_gt" , Type = "custom_attribute" } ;
322+ Assert . IsTrue ( semverGTCondition . Evaluate ( null , new UserAttributes { { "semversion_gt" , "3.7.1-prerelease+rc" } } , Logger ) ?? false ) ;
323+ }
324+
325+ [ Test ]
326+ public void TestSemVerGTComparePrereleaseSmallerThanBuild ( )
327+ {
328+ var semverGTCondition = new BaseCondition { Name = "semversion_gt" , Value = "3.7.1-prerelease" , Match = "semver_gt" , Type = "custom_attribute" } ;
329+ Assert . IsTrue ( semverGTCondition . Evaluate ( null , new UserAttributes { { "semversion_gt" , "3.7.1+build" } } , Logger ) ?? false ) ;
330+ }
311331 #endregion // GTMatcher Tests
312-
332+
313333 #region GEMatcher Tests
314334
315335 [ Test ]
@@ -372,6 +392,20 @@ public void TestLTMatcherReturnsTrueWhenAttributeValueIsLessThanConditionValue()
372392 Assert . That ( LTCondition . Evaluate ( null , new UserAttributes { { "distance_lt" , 5 } } , Logger ) , Is . True ) ;
373393 }
374394
395+ [ Test ]
396+ public void TestSemVerLTTargetBuildComplex ( )
397+ {
398+ var semverLTCondition = new BaseCondition { Name = "semversion_lt" , Value = "2.1.3-beta+1.2.3" , Match = "semver_lt" , Type = "custom_attribute" } ;
399+ Assert . IsTrue ( semverLTCondition . Evaluate ( null , new UserAttributes { { "semversion_lt" , "2.1.3-beta+1" } } , Logger ) ?? false ) ;
400+ }
401+
402+ [ Test ]
403+ public void TestSemVerLTCompareMultipleDash ( )
404+ {
405+ var semverLTCondition = new BaseCondition { Name = "semversion_lt" , Value = "2.1.3-beta-1.2.3" , Match = "semver_lt" , Type = "custom_attribute" } ;
406+ Assert . IsTrue ( semverLTCondition . Evaluate ( null , new UserAttributes { { "semversion_lt" , "2.1.3-beta-1" } } , Logger ) ?? false ) ;
407+ }
408+
375409 #endregion // LTMatcher Tests
376410
377411 #region LEMatcher Tests
@@ -503,6 +537,13 @@ public void TestSemVerEQMatcherReturnsTrueWhenAttributeValueIsEqualToConditionVa
503537 var semverEQCondition = new BaseCondition { Name = "semversion_eq" , Value = "3.7.0-beta.2.3" , Match = "semver_eq" , Type = "custom_attribute" } ;
504538 Assert . IsTrue ( semverEQCondition . Evaluate ( null , new UserAttributes { { "semversion_eq" , "3.7.0-beta.2.3" } } , Logger ) ?? false ) ;
505539 }
540+
541+ [ Test ]
542+ public void TestSemVerEQTargetBuildIgnores ( )
543+ {
544+ var semverEQCondition = new BaseCondition { Name = "semversion_eq" , Value = "2.1.3" , Match = "semver_eq" , Type = "custom_attribute" } ;
545+ Assert . IsTrue ( semverEQCondition . Evaluate ( null , new UserAttributes { { "semversion_eq" , "2.1.3+build" } } , Logger ) ?? false ) ;
546+ }
506547 #endregion // SemVerEQMatcher Tests
507548
508549 #region SemVerGEMatcher Tests
0 commit comments