|
1 | 1 | defmodule DeserializerTest do |
2 | 2 | use ExUnit.Case, async: true |
3 | | - alias OpenapiPetstore.Deserializer |
4 | 3 | alias OpenapiPetstore.Model.{Category, Pet, Tag} |
5 | 4 |
|
6 | 5 | @valid_json """ |
@@ -29,21 +28,24 @@ defmodule DeserializerTest do |
29 | 28 | } |
30 | 29 | """ |
31 | 30 |
|
32 | | - test "jason_decode/2 with valid JSON" do |
33 | | - assert Deserializer.json_decode(@valid_json, Pet) == |
34 | | - {:ok, |
35 | | - %Pet{ |
36 | | - id: 14, |
37 | | - category: %Category{id: 75, name: "sea dragons"}, |
38 | | - name: "Nagga", |
39 | | - photoUrls: ["https://example.com/nagga1.jpg", "https://example.com/nagga2.jpg"], |
40 | | - tags: [%Tag{id: 99, name: "dragon"}, %Tag{id: 23, name: "sea"}], |
41 | | - status: "foo" |
42 | | - }} |
| 31 | + test "can deserialize valid JSON" do |
| 32 | + pet = |
| 33 | + JSON.decode!(@valid_json) |
| 34 | + |> then(fn params -> Pet.changeset(%Pet{}, params) end) |
| 35 | + |> Ecto.Changeset.apply_action!(:insert) |
| 36 | + |
| 37 | + assert pet == |
| 38 | + %Pet{ |
| 39 | + id: 14, |
| 40 | + category: %Category{id: 75, name: "sea dragons"}, |
| 41 | + name: "Nagga", |
| 42 | + photoUrls: ["https://example.com/nagga1.jpg", "https://example.com/nagga2.jpg"], |
| 43 | + tags: [%Tag{id: 99, name: "dragon"}, %Tag{id: 23, name: "sea"}], |
| 44 | + status: "foo" |
| 45 | + } |
43 | 46 | end |
44 | 47 |
|
45 | | - test "jason_decode/2 with invalid JSON" do |
46 | | - assert Deserializer.json_decode(~s/{: 1}/, Pet) == |
47 | | - {:error, {:invalid_byte, 1, 58}} |
| 48 | + test "cannot deserialize invalid JSON" do |
| 49 | + assert JSON.decode(~s/{: 1}/) == {:error, {:invalid_byte, 1, 58}} |
48 | 50 | end |
49 | 51 | end |
0 commit comments