@@ -482,4 +482,44 @@ struct WebPushManagerTests {
482482 #expect( try JSONDecoder ( ) . decode ( WebPushManager . Expiration. self, from: Data ( " 60 " . utf8) ) == . minutes( 1 ) )
483483 }
484484 }
485+
486+ @Suite struct Urgency {
487+ @Test func comparison( ) {
488+ #expect( WebPushManager . Urgency ( rawValue: " invalid " ) < WebPushManager . Urgency. veryLow)
489+ #expect( WebPushManager . Urgency ( rawValue: " invalid " ) < WebPushManager . Urgency. low)
490+ #expect( WebPushManager . Urgency ( rawValue: " invalid " ) < WebPushManager . Urgency. normal)
491+ #expect( WebPushManager . Urgency ( rawValue: " invalid " ) < WebPushManager . Urgency. high)
492+
493+ #expect( WebPushManager . Urgency. veryLow < WebPushManager . Urgency. low)
494+ #expect( WebPushManager . Urgency. veryLow < WebPushManager . Urgency. normal)
495+ #expect( WebPushManager . Urgency. veryLow < WebPushManager . Urgency. high)
496+
497+ #expect( WebPushManager . Urgency. low < WebPushManager . Urgency. normal)
498+ #expect( WebPushManager . Urgency. low < WebPushManager . Urgency. high)
499+
500+ #expect( WebPushManager . Urgency. normal < WebPushManager . Urgency. high)
501+ }
502+
503+ @Test func stringEncoding( ) {
504+ #expect( " \( WebPushManager . Urgency ( rawValue: " future-value " ) ) " == " future-value " )
505+ #expect( " \( WebPushManager . Urgency. veryLow) " == " very-low " )
506+ #expect( " \( WebPushManager . Urgency. low) " == " low " )
507+ #expect( " \( WebPushManager . Urgency. normal) " == " normal " )
508+ #expect( " \( WebPushManager . Urgency. high) " == " high " )
509+ }
510+
511+ @Test func coding( ) throws {
512+ #expect( String ( decoding: try JSONEncoder ( ) . encode ( WebPushManager . Urgency ( rawValue: " future-value " ) ) , as: UTF8 . self) == " \" future-value \" " )
513+ #expect( String ( decoding: try JSONEncoder ( ) . encode ( WebPushManager . Urgency. veryLow) , as: UTF8 . self) == " \" very-low \" " )
514+ #expect( String ( decoding: try JSONEncoder ( ) . encode ( WebPushManager . Urgency. low) , as: UTF8 . self) == " \" low \" " )
515+ #expect( String ( decoding: try JSONEncoder ( ) . encode ( WebPushManager . Urgency. normal) , as: UTF8 . self) == " \" normal \" " )
516+ #expect( String ( decoding: try JSONEncoder ( ) . encode ( WebPushManager . Urgency. high) , as: UTF8 . self) == " \" high \" " )
517+
518+ #expect( try JSONDecoder ( ) . decode ( WebPushManager . Urgency. self, from: Data ( " \" future-value \" " . utf8) ) == . init( rawValue: " future-value " ) )
519+ #expect( try JSONDecoder ( ) . decode ( WebPushManager . Urgency. self, from: Data ( " \" very-low \" " . utf8) ) == . veryLow)
520+ #expect( try JSONDecoder ( ) . decode ( WebPushManager . Urgency. self, from: Data ( " \" low \" " . utf8) ) == . low)
521+ #expect( try JSONDecoder ( ) . decode ( WebPushManager . Urgency. self, from: Data ( " \" normal \" " . utf8) ) == . normal)
522+ #expect( try JSONDecoder ( ) . decode ( WebPushManager . Urgency. self, from: Data ( " \" high \" " . utf8) ) == . high)
523+ }
524+ }
485525}
0 commit comments