1
+ use std:: collections:: HashMap ;
2
+
3
+ use chrono:: * ;
4
+ use expectest:: prelude:: * ;
5
+ use maplit:: btreemap;
6
+
1
7
use super :: * ;
2
- use super :: sanitise_path;
3
8
use super :: {
4
9
execute_state_machine,
5
- update_paths_for_resource,
6
- parse_header_values,
7
10
finalise_response,
8
11
join_paths,
12
+ parse_header_values,
13
+ update_paths_for_resource,
9
14
} ;
10
15
use super :: context:: * ;
11
16
use super :: headers:: * ;
12
- use expectest:: prelude:: * ;
13
- use std:: collections:: HashMap ;
14
- use chrono:: * ;
17
+ use super :: sanitise_path;
15
18
16
19
fn resource ( path : & str ) -> WebmachineRequest {
17
20
WebmachineRequest {
@@ -713,7 +716,8 @@ fn execute_state_machine_returns_412_if_the_resource_etag_does_not_match_if_matc
713
716
714
717
#[ test]
715
718
fn execute_state_machine_returns_412_if_the_resource_last_modified_gt_unmodified_since ( ) {
716
- let datetime = Local :: now ( ) . with_timezone ( & FixedOffset :: east ( 10 * 3600 ) ) ;
719
+ let offset = FixedOffset :: east_opt ( 10 * 3600 ) . expect ( "FixedOffset::east out of bounds" ) ;
720
+ let datetime = Local :: now ( ) . with_timezone ( & offset) ;
717
721
let header_datetime = datetime. clone ( ) - Duration :: minutes ( 5 ) ;
718
722
let mut context = WebmachineContext {
719
723
request : WebmachineRequest {
@@ -726,7 +730,10 @@ fn execute_state_machine_returns_412_if_the_resource_last_modified_gt_unmodified
726
730
} ;
727
731
let resource = WebmachineResource {
728
732
resource_exists : callback ( & |_, _| true ) ,
729
- last_modified : callback ( & |_, _| Some ( Local :: now ( ) . with_timezone ( & FixedOffset :: east ( 10 * 3600 ) ) ) ) ,
733
+ last_modified : callback ( & |_, _| {
734
+ let fixed_offset = FixedOffset :: east_opt ( 10 * 3600 ) . expect ( "FixedOffset::east out of bounds" ) ;
735
+ Some ( Local :: now ( ) . with_timezone ( & fixed_offset) )
736
+ } ) ,
730
737
..WebmachineResource :: default ( )
731
738
} ;
732
739
@@ -821,7 +828,8 @@ fn execute_state_machine_returns_304_if_resource_etag_in_if_non_match_and_is_a_h
821
828
822
829
#[ test]
823
830
fn execute_state_machine_returns_304_if_the_resource_last_modified_gt_modified_since ( ) {
824
- let datetime = Local :: now ( ) . with_timezone ( & FixedOffset :: east ( 10 * 3600 ) ) - Duration :: minutes ( 15 ) ;
831
+ let offset = FixedOffset :: east_opt ( 10 * 3600 ) . expect ( "FixedOffset::east out of bounds" ) ;
832
+ let datetime = Local :: now ( ) . with_timezone ( & offset) - Duration :: minutes ( 15 ) ;
825
833
let header_datetime = datetime + Duration :: minutes ( 5 ) ;
826
834
let mut context = WebmachineContext {
827
835
request : WebmachineRequest {
@@ -834,7 +842,10 @@ fn execute_state_machine_returns_304_if_the_resource_last_modified_gt_modified_s
834
842
} ;
835
843
let resource = WebmachineResource {
836
844
resource_exists : callback ( & |_, _| true ) ,
837
- last_modified : callback ( & |_, _| Some ( Local :: now ( ) . with_timezone ( & FixedOffset :: east ( 10 * 3600 ) ) - Duration :: minutes ( 15 ) ) ) ,
845
+ last_modified : callback ( & |_, _| {
846
+ let offset = FixedOffset :: east_opt ( 10 * 3600 ) . expect ( "FixedOffset::east out of bounds" ) ;
847
+ Some ( Local :: now ( ) . with_timezone ( & offset) - Duration :: minutes ( 15 ) )
848
+ } ) ,
838
849
..WebmachineResource :: default ( )
839
850
} ;
840
851
execute_state_machine ( & mut context, & resource) ;
0 commit comments