l17Tests :: TestTree
l17Tests = decisionTestGroup "l17" "Last-Modified > If-Modified-Since?"
  [ testCase "True ==> m16" $
      let r = resource { lastModified = return $ date { hdDay = 20 } }
      in after' (l17 date) r req @?= Decision' "m16"
  , testCase "No last modified ==> m16" $
      after' (l17 date) resource req @?= Decision' "m16"
  , testCase "False ==> 304 Not Modified" $
      let r = resource { lastModified = return $ date { hdDay = 10 } }
      in after' (l17 date) r req @?= Done' notModified304
  ]
l17Tests :: TestTree
l17Tests = decisionTestGroup "l17" "Last-Modified > If-Modified-Since?"
  [ testCase "True ==> m16" $
      let r = resource { lastModified = return $ date { hdDay = 20 } }
      in after' (l17 date) r req @?= Decision' "m16"
  , testCase "No last modified ==> m16" $
      after' (l17 date) resource req @?= Decision' "m16"
  , testCase "False ==> 304 Not Modified" $
      let r = resource { lastModified = return $ date { hdDay = 10 } }
      in after' (l17 date) r req @?= Done' notModified304
  ]
l17Tests = decisionTestGroup "l17" "Last-Modified > If-Modified-Since?"
  [ testCase "True ==> m16" $
      let r = resource { lastModified = return $ date { hdDay = 20 } }
      in after' (l17 date) r req @?= Decision' "m16"
  , testCase "No last modified ==> m16" $
      after' (l17 date) resource req @?= Decision' "m16"
  , testCase "False ==> 304 Not Modified" $
      let r = resource { lastModified = return $ date { hdDay = 10 } }
      in after' (l17 date) r req @?= Done' notModified304
  ]