@@ -48,3 +48,55 @@ impl RangeBreak {
4848 self
4949 }
5050}
51+
52+ #[ cfg( test) ]
53+ mod tests {
54+ use serde_json:: { json, to_value} ;
55+
56+ use super :: * ;
57+
58+ #[ test]
59+ fn serialize_range_break_default ( ) {
60+ let range_break = RangeBreak :: new ( ) ;
61+
62+ let expected = json ! ( { } ) ;
63+
64+ assert_eq ! ( to_value( range_break) . unwrap( ) , expected) ;
65+ }
66+
67+ #[ test]
68+ fn serialize_range_break ( ) {
69+ let range_break = RangeBreak :: new ( )
70+ . pattern ( "day of week" )
71+ . bounds ( "sat" , "mon" )
72+ . values ( vec ! [ "sat" , "sun" ] )
73+ . dvalue ( 86400000 )
74+ . enabled ( true ) ;
75+
76+ let expected = json ! ( {
77+ "pattern" : "day of week" ,
78+ "bounds" : [ "sat" , "mon" ] ,
79+ "values" : [ "sat" , "sun" ] ,
80+ "dvalue" : 86400000 ,
81+ "enabled" : true
82+ } ) ;
83+
84+ assert_eq ! ( to_value( range_break) . unwrap( ) , expected) ;
85+ }
86+
87+ #[ test]
88+ fn seriealize_range_break_with_mixed_values ( ) {
89+ let range_break = RangeBreak :: new ( ) . values ( vec ! [
90+ NumOrString :: S ( "sat" . to_string( ) ) ,
91+ NumOrString :: I ( 0 ) ,
92+ NumOrString :: S ( "sun" . to_string( ) ) ,
93+ NumOrString :: I ( 1 ) ,
94+ ] ) ;
95+
96+ let expected = json ! ( {
97+ "values" : [ "sat" , 0 , "sun" , 1 ]
98+ } ) ;
99+
100+ assert_eq ! ( to_value( range_break) . unwrap( ) , expected) ;
101+ }
102+ }
0 commit comments