public void JsonTest(string json, bool expectNonEmptySingular, bool expectNonEmptyPlural) { var value = JsonSerializer.Deserialize <GetProgramsResponseHelper>(json, LikePharmaClientOptions.CreateDefaultJsonSerializerOptions()); Assert.NotNull(value); ValidateObject(value, expectNonEmptySingular, expectNonEmptyPlural); var json2 = JsonSerializer.Serialize(value, LikePharmaClientOptions.CreateDefaultJsonSerializerOptions()); Assert.Equal(Helper.ReformatJson(json), json2); }
public async Task NegativeResponsesAreValid() { var jsonOpts = LikePharmaClientOptions.CreateDefaultJsonSerializerOptions(); var protSet = ProtocolSettings.CreateOlekstra(); var req = new GetDiscountRequest { PosId = "12345", PharmacyId = "123", CardNumber = "1234567890", PhoneNumber = "+79000000000", AnyData = "abc", }; var jsonText = LikePharmaClient.SerializeJson(req, protSet, jsonOpts); var jsonBytes = Encoding.UTF8.GetBytes(jsonText); using var body = new MemoryStream(); body.Write(jsonBytes, 0, jsonBytes.Length); body.Position = 0; context.Request.Method = "POST"; context.Request.Path = "/get_discount"; context.Request.ContentType = "application/json"; context.Request.Body = body; context.Response.Body = new MemoryStream(); await middleware.InvokeAsync(context).ConfigureAwait(false); Assert.Equal(200, context.Response.StatusCode); context.Response.Body.Position = 0; using var sr = new StreamReader(context.Response.Body); var respText = await sr.ReadToEndAsync().ConfigureAwait(false); var resp = LikePharmaClient.DeserializeJson <GetDiscountResponse>(respText, protSet, jsonOpts); var validator = new LikePharmaValidator(protSet); var valid = validator.TryValidateObject(resp, out var results); Assert.Empty(results); Assert.True(valid); }