@@ -593,4 +593,50 @@ mod tests {
593593 // 1.0.0 satisfies ^1.0.0, so selected is None
594594 assert_eq ! ( result. selected, None ) ;
595595 }
596+
597+ #[ test]
598+ fn test_new_creates_registry ( ) {
599+ install_tls_provider ( ) ;
600+ let _registry = CratesIoRegistry :: new ( ) ;
601+ }
602+
603+ #[ test]
604+ fn test_default_creates_registry ( ) {
605+ install_tls_provider ( ) ;
606+ let _registry = CratesIoRegistry :: default ( ) ;
607+ }
608+
609+ #[ test]
610+ fn test_select_version_empty_versions ( ) {
611+ let latest = "1.0.0" . to_owned ( ) ;
612+ let versions: Vec < semver:: Version > = vec ! [ ] ;
613+ let result = select_version ( "^1.0.0" , Some ( & latest) , & versions, TargetLevel :: Latest ) ;
614+ assert_eq ! ( result, Some ( "1.0.0" . to_owned( ) ) ) ;
615+ }
616+
617+ #[ test]
618+ fn test_select_version_minor_unparseable_falls_back ( ) {
619+ let latest = "2.0.0" . to_owned ( ) ;
620+ let versions = make_versions ( & [ "1.0.0" , "2.0.0" ] ) ;
621+ let result = select_version ( "*" , Some ( & latest) , & versions, TargetLevel :: Minor ) ;
622+ assert_eq ! ( result, Some ( "2.0.0" . to_owned( ) ) ) ;
623+ }
624+
625+ #[ test]
626+ fn test_select_version_patch_unparseable_falls_back ( ) {
627+ let latest = "2.0.0" . to_owned ( ) ;
628+ let versions = make_versions ( & [ "1.0.0" , "2.0.0" ] ) ;
629+ let result = select_version ( "*" , Some ( & latest) , & versions, TargetLevel :: Patch ) ;
630+ assert_eq ! ( result, Some ( "2.0.0" . to_owned( ) ) ) ;
631+ }
632+
633+ #[ test]
634+ fn test_satisfies_req_invalid_req ( ) {
635+ assert ! ( !satisfies_req( "not valid!!!" , "1.0.0" ) ) ;
636+ }
637+
638+ #[ test]
639+ fn test_satisfies_req_invalid_version ( ) {
640+ assert ! ( !satisfies_req( "^1.0.0" , "not.valid" ) ) ;
641+ }
596642}
0 commit comments