
VersionTest.pudu
Pudu27 lines1.2 KB
1/** @Test.Domain.Version.Suite — the protocol version a request is sent with */2module PuduLangHttpClient.Domain.VersionTest34import Std.Http as Http5import Std.Io as Io6import Std.Test as Test7import PuduLangHttpClient.Domain.Version as Version8910fn under(policy: Version.Policy) -> Array[Option[Http.Version]] {11 [Http.Http10, Http.Http11, Http.Http2, Http.Http3].map(|version: Http.Version| Version.negotiate(&version, &policy))12}131415fn main() -> Int {16 let checks = Test.suite("Domain.Version", &[17 Test.equals("or-lower sends the highest version spoken at or below the request", &under(Version.OrLower), &[Some(Http.Http10), Some(Http.Http11), Some(Http.Http11), Some(Http.Http11)]),18 Test.equals("exact sends only a version spoken", &under(Version.Exact), &[Some(Http.Http10), Some(Http.Http11), None, None]),19 Test.equals("or-higher sends the highest version spoken at or above the request", &under(Version.OrHigher), &[Some(Http.Http11), Some(Http.Http11), None, None])20 ])21 let ran = Test.run(&checks)22 for failure in Test.failuresOf(&ran) {23 let _reported = Io.writeErrorLine(failure)24 }25 Test.report(&ran)26}27