@@ -21,6 +21,8 @@ struct BadgeRef {
2121 coveralls_attributes : HashMap < String , String > ,
2222 circle_ci : Badge ,
2323 circle_ci_attributes : HashMap < String , String > ,
24+ cirrus_ci : Badge ,
25+ cirrus_ci_attributes : HashMap < String , String > ,
2426 maintenance : Badge ,
2527 maintenance_attributes : HashMap < String , String > ,
2628}
@@ -134,6 +136,14 @@ fn set_up() -> (BadgeTestCrate, BadgeRef) {
134136 badge_attributes_circle_ci. insert ( String :: from ( "branch" ) , String :: from ( "beta" ) ) ;
135137 badge_attributes_circle_ci. insert ( String :: from ( "repository" ) , String :: from ( "rust-lang/rust" ) ) ;
136138
139+ let cirrus_ci = Badge :: CirrusCi {
140+ repository : String :: from ( "rust-lang/rust" ) ,
141+ branch : Some ( String :: from ( "beta" ) ) ,
142+ } ;
143+ let mut badge_attributes_cirrus_ci = HashMap :: new ( ) ;
144+ badge_attributes_cirrus_ci. insert ( String :: from ( "branch" ) , String :: from ( "beta" ) ) ;
145+ badge_attributes_cirrus_ci. insert ( String :: from ( "repository" ) , String :: from ( "rust-lang/rust" ) ) ;
146+
137147 let maintenance = Badge :: Maintenance {
138148 status : MaintenanceStatus :: LookingForMaintainer ,
139149 } ;
@@ -163,6 +173,8 @@ fn set_up() -> (BadgeTestCrate, BadgeRef) {
163173 coveralls_attributes : badge_attributes_coveralls,
164174 circle_ci,
165175 circle_ci_attributes : badge_attributes_circle_ci,
176+ cirrus_ci,
177+ cirrus_ci_attributes : badge_attributes_cirrus_ci,
166178 maintenance,
167179 maintenance_attributes,
168180 } ;
@@ -290,6 +302,17 @@ fn update_add_circle_ci() {
290302 assert_eq ! ( krate. badges( ) , vec![ test_badges. circle_ci] ) ;
291303}
292304
305+ #[ test]
306+ fn update_add_cirrus_ci ( ) {
307+ // Add a Cirrus CI badge
308+ let ( krate, test_badges) = set_up ( ) ;
309+
310+ let mut badges = HashMap :: new ( ) ;
311+ badges. insert ( String :: from ( "cirrus-ci" ) , test_badges. cirrus_ci_attributes ) ;
312+ krate. update ( & badges) ;
313+ assert_eq ! ( krate. badges( ) , vec![ test_badges. cirrus_ci] ) ;
314+ }
315+
293316#[ test]
294317fn update_add_maintenance ( ) {
295318 // Add a maintenance badge
@@ -547,6 +570,23 @@ fn circle_ci_required_keys() {
547570 assert_eq ! ( krate. badges( ) , vec![ ] ) ;
548571}
549572
573+ #[ test]
574+ fn cirrus_ci_required_keys ( ) {
575+ // Add a Cirrus CI badge missing a required field
576+ let ( krate, mut test_badges) = set_up ( ) ;
577+
578+ let mut badges = HashMap :: new ( ) ;
579+
580+ // Repository is a required key
581+ test_badges. cirrus_ci_attributes . remove ( "repository" ) ;
582+ badges. insert ( String :: from ( "cirrus-ci" ) , test_badges. cirrus_ci_attributes ) ;
583+
584+ let invalid_badges = krate. update ( & badges) ;
585+ assert_eq ! ( invalid_badges. len( ) , 1 ) ;
586+ assert_eq ! ( invalid_badges. first( ) . unwrap( ) , "cirrus-ci" ) ;
587+ assert_eq ! ( krate. badges( ) , vec![ ] ) ;
588+ }
589+
550590#[ test]
551591fn maintenance_required_keys ( ) {
552592 // Add a maintenance badge missing a required field
0 commit comments