mirror of
https://github.com/Smaug123/WoofWare.Myriad
synced 2025-10-23 21:08:39 +00:00
Compare commits
4 Commits
WoofWare.M
...
c5216943bb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c5216943bb | ||
|
|
63a45f14d8 | ||
|
|
a9024584a5 | ||
|
|
9472d9d06b |
@@ -18,7 +18,7 @@ type IPureGymApi =
|
|||||||
abstract GetGymAttendance : [<Path "gym_id">] gymId : int * ?ct : CancellationToken -> Task<GymAttendance>
|
abstract GetGymAttendance : [<Path "gym_id">] gymId : int * ?ct : CancellationToken -> Task<GymAttendance>
|
||||||
|
|
||||||
[<RestEase.GetAttribute "v1/member">]
|
[<RestEase.GetAttribute "v1/member">]
|
||||||
abstract GetMember : ?ct : CancellationToken -> Task<Member>
|
abstract GetMember : ?ct : CancellationToken -> Member Task
|
||||||
|
|
||||||
[<RestEase.Get "v1/gyms/{gym_id}">]
|
[<RestEase.Get "v1/gyms/{gym_id}">]
|
||||||
abstract GetGym : [<Path "gym_id">] gymId : int * ?ct : CancellationToken -> Task<Gym>
|
abstract GetGym : [<Path "gym_id">] gymId : int * ?ct : CancellationToken -> Task<Gym>
|
||||||
@@ -78,6 +78,18 @@ type IPureGymApi =
|
|||||||
[<Get "endpoint">]
|
[<Get "endpoint">]
|
||||||
abstract GetResponseMessage''' : ?ct : CancellationToken -> Task<HttpResponseMessage>
|
abstract GetResponseMessage''' : ?ct : CancellationToken -> Task<HttpResponseMessage>
|
||||||
|
|
||||||
|
[<Get "endpoint">]
|
||||||
|
abstract GetResponse : ?ct : CancellationToken -> Task<Response<MemberActivityDto>>
|
||||||
|
|
||||||
|
[<Get "endpoint">]
|
||||||
|
abstract GetResponse' : ?ct : CancellationToken -> Task<RestEase.Response<MemberActivityDto>>
|
||||||
|
|
||||||
|
[<Get "endpoint">]
|
||||||
|
abstract GetResponse'' : ?ct : CancellationToken -> Task<MemberActivityDto Response>
|
||||||
|
|
||||||
|
[<Get "endpoint">]
|
||||||
|
abstract GetResponse''' : ?ct : CancellationToken -> Task<MemberActivityDto RestEase.Response>
|
||||||
|
|
||||||
[<Get "endpoint">]
|
[<Get "endpoint">]
|
||||||
[<AllowAnyStatusCode>]
|
[<AllowAnyStatusCode>]
|
||||||
abstract GetWithAnyReturnCode : ?ct : CancellationToken -> Task<HttpResponseMessage>
|
abstract GetWithAnyReturnCode : ?ct : CancellationToken -> Task<HttpResponseMessage>
|
||||||
|
|||||||
@@ -86,3 +86,36 @@ module TestReturnTypes =
|
|||||||
| _ -> failwith $"unrecognised case: %s{case}"
|
| _ -> failwith $"unrecognised case: %s{case}"
|
||||||
|
|
||||||
Object.ReferenceEquals (message, Option.get responseMessage) |> shouldEqual true
|
Object.ReferenceEquals (message, Option.get responseMessage) |> shouldEqual true
|
||||||
|
|
||||||
|
[<TestCase "Task<Response>">]
|
||||||
|
[<TestCase "Task<RestEase.Response>">]
|
||||||
|
[<TestCase "RestEase.Response Task">]
|
||||||
|
[<TestCase "RestEase.Response Task">]
|
||||||
|
let ``Response return`` (case : string) =
|
||||||
|
for json, memberDto in PureGymDtos.memberActivityDtoCases do
|
||||||
|
let mutable responseMessage = None
|
||||||
|
|
||||||
|
let proc (message : HttpRequestMessage) : HttpResponseMessage Async =
|
||||||
|
async {
|
||||||
|
message.Method |> shouldEqual HttpMethod.Get
|
||||||
|
let content = new StringContent (json)
|
||||||
|
let resp = new HttpResponseMessage (HttpStatusCode.OK)
|
||||||
|
resp.Content <- content
|
||||||
|
responseMessage <- Some resp
|
||||||
|
return resp
|
||||||
|
}
|
||||||
|
|
||||||
|
use client = HttpClientMock.make (Uri "https://example.com") proc
|
||||||
|
let api = PureGymApi.make client
|
||||||
|
|
||||||
|
let response =
|
||||||
|
match case with
|
||||||
|
| "Task<Response>" -> api.GetResponse().Result
|
||||||
|
| "Task<RestEase.Response>" -> api.GetResponse'().Result
|
||||||
|
| "Response Task" -> api.GetResponse''().Result
|
||||||
|
| "RestEase.Response Task" -> api.GetResponse'''().Result
|
||||||
|
| _ -> failwith $"unrecognised case: %s{case}"
|
||||||
|
|
||||||
|
response.ResponseMessage |> shouldEqual (Option.get responseMessage)
|
||||||
|
response.StringContent |> shouldEqual json
|
||||||
|
response.GetContent () |> shouldEqual memberDto
|
||||||
|
|||||||
@@ -362,6 +362,13 @@ module internal SynTypePatterns =
|
|||||||
| SynType.Array (1, innerType, _) -> Some innerType
|
| SynType.Array (1, innerType, _) -> Some innerType
|
||||||
| _ -> None
|
| _ -> None
|
||||||
|
|
||||||
|
let (|RestEaseResponseType|_|) (fieldType : SynType) =
|
||||||
|
match fieldType with
|
||||||
|
| SynType.App (SynType.LongIdent ident, _, [ innerType ], _, _, _, _) when AstHelper.isArrayIdent ident ->
|
||||||
|
Some innerType
|
||||||
|
| SynType.Array (1, innerType, _) -> Some innerType
|
||||||
|
| _ -> None
|
||||||
|
|
||||||
let (|DictionaryType|_|) (fieldType : SynType) =
|
let (|DictionaryType|_|) (fieldType : SynType) =
|
||||||
match fieldType with
|
match fieldType with
|
||||||
| SynType.App (SynType.LongIdent ident, _, [ key ; value ], _, _, _, _) when AstHelper.isDictionaryIdent ident ->
|
| SynType.App (SynType.LongIdent ident, _, [ key ; value ], _, _, _, _) when AstHelper.isDictionaryIdent ident ->
|
||||||
|
|||||||
Reference in New Issue
Block a user