MCPcopy Index your code
hub / github.com/oapi-codegen/oapi-codegen / TestPetStore

Function TestPetStore

examples/petstore-expanded/iris/petstore_test.go:34–151  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

32}
33
34func TestPetStore(t *testing.T) {
35 store := api.NewPetStore()
36 irisPetServer := NewIrisPetServer(store, 8080)
37
38 t.Run("Add pet", func(t *testing.T) {
39 tag := "TagOfSpot"
40 newPet := api.NewPet{
41 Name: "Spot",
42 Tag: &tag,
43 }
44
45 rr := testutil.NewRequest().Post("/pets").WithJsonBody(newPet).GoWithHTTPHandler(t, irisPetServer).Recorder
46 assert.Equal(t, http.StatusCreated, rr.Code)
47
48 var resultPet api.Pet
49 err := json.NewDecoder(rr.Body).Decode(&resultPet)
50 assert.NoError(t, err, "error unmarshaling response")
51 assert.Equal(t, newPet.Name, resultPet.Name)
52 assert.Equal(t, *newPet.Tag, *resultPet.Tag)
53 })
54
55 t.Run("Find pet by ID", func(t *testing.T) {
56 pet := api.Pet{
57 Id: 100,
58 }
59 store.Pets[pet.Id] = pet
60 rr := doGet(t, irisPetServer, fmt.Sprintf("/pets/%d", pet.Id))
61
62 var resultPet api.Pet
63 err := json.NewDecoder(rr.Body).Decode(&resultPet)
64 assert.NoError(t, err, "error getting pet")
65 assert.Equal(t, pet, resultPet)
66 })
67
68 t.Run("Pet not found", func(t *testing.T) {
69 rr := doGet(t, irisPetServer, "/pets/27179095781")
70 assert.Equal(t, http.StatusNotFound, rr.Code)
71
72 var petError api.Error
73 err := json.NewDecoder(rr.Body).Decode(&petError)
74 assert.NoError(t, err, "error getting response", err)
75 assert.Equal(t, int32(http.StatusNotFound), petError.Code)
76 })
77
78 t.Run("List all pets", func(t *testing.T) {
79 store.Pets = map[int64]api.Pet{1: {}, 2: {}}
80
81 // Now, list all pets, we should have two
82 rr := doGet(t, irisPetServer, "/pets")
83 assert.Equal(t, http.StatusOK, rr.Code)
84
85 var petList []api.Pet
86 err := json.NewDecoder(rr.Body).Decode(&petList)
87 assert.NoError(t, err, "error getting response", err)
88 assert.Equal(t, 2, len(petList))
89 })
90
91 t.Run("Filter pets by tag", func(t *testing.T) {

Callers

nothing calls this directly

Calls 4

NewPetStoreFunction · 0.92
NewIrisPetServerFunction · 0.85
RunMethod · 0.80
doGetFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…