mte/unikernel/duniverse/httpun/lib_test/test_method.ml
2025-11-11 02:07:51 +01:00

41 lines
2 KiB
OCaml

open Httpun
open Method
let test_is_safe () =
Alcotest.(check bool) "GET is safe" (is_safe `GET ) true;
Alcotest.(check bool) "HEAD is safe" (is_safe `HEAD) true;
Alcotest.(check bool) "POST is safe" (is_safe `POST) false;
Alcotest.(check bool) "PUT is safe" (is_safe `PUT ) false;
Alcotest.(check bool) "DELETE is safe" (is_safe `DELETE ) false;
Alcotest.(check bool) "CONNECT is safe" (is_safe `CONNECT) false;
Alcotest.(check bool) "OPTIONS is safe" (is_safe `OPTIONS) true;
Alcotest.(check bool) "TRACE is safe" (is_safe `TRACE ) true;
;;
let test_is_cacheable () =
Alcotest.(check bool) "GET is cacheable" (is_cacheable `GET ) true;
Alcotest.(check bool) "HEAD is cacheable" (is_cacheable `HEAD) true;
Alcotest.(check bool) "POST is cacheable" (is_cacheable `POST) true;
Alcotest.(check bool) "PUT is cacheable" (is_cacheable `PUT ) false;
Alcotest.(check bool) "DELETE is cacheable" (is_cacheable `DELETE ) false;
Alcotest.(check bool) "CONNECT is cacheable" (is_cacheable `CONNECT) false;
Alcotest.(check bool) "OPTIONS is cacheable" (is_cacheable `OPTIONS) false;
Alcotest.(check bool) "TRACE is cacheable" (is_cacheable `TRACE ) false;
;;
let test_is_idempotent () =
Alcotest.(check bool) "GET is idempotent" (is_idempotent `GET ) true;
Alcotest.(check bool) "HEAD is idempotent" (is_idempotent `HEAD) true;
Alcotest.(check bool) "POST is idempotent" (is_idempotent `POST) false;
Alcotest.(check bool) "PUT is idempotent" (is_idempotent `PUT ) true;
Alcotest.(check bool) "DELETE is idempotent" (is_idempotent `DELETE ) true;
Alcotest.(check bool) "CONNECT is idempotent" (is_idempotent `CONNECT) false;
Alcotest.(check bool) "OPTIONS is idempotent" (is_idempotent `OPTIONS) true;
Alcotest.(check bool) "TRACE is idempotent" (is_idempotent `TRACE ) true;
;;
let tests =
[ "is_safe" , `Quick, test_is_safe
; "is_cacheable" , `Quick, test_is_cacheable
; "is_idempotent", `Quick, test_is_idempotent
]