mirror of
				https://github.com/Smaug123/WoofWare.Myriad
				synced 2025-10-31 00:29:00 +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