Skip to content

Commit

Permalink
RHINENG-2420: return data to check instead of passing checker function
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelMraka committed Nov 6, 2023
1 parent 1a4b443 commit 789c2b2
Showing 1 changed file with 41 additions and 49 deletions.
90 changes: 41 additions & 49 deletions manager/controllers/systems_advisories_view_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"github.com/stretchr/testify/assert"
)

func doTestView(t *testing.T, handler gin.HandlerFunc, limit, offset *int, checker func(w *httptest.ResponseRecorder)) {
func doTestView(t *testing.T, handler gin.HandlerFunc, limit, offset *int) *httptest.ResponseRecorder {
core.SetupTest(t)
body := SystemsAdvisoriesRequest{
Systems: []SystemID{"00000000-0000-0000-0000-000000000001", "00000000-0000-0000-0000-000000000002"},
Expand All @@ -27,86 +27,78 @@ func doTestView(t *testing.T, handler gin.HandlerFunc, limit, offset *int, check
}

w := CreateRequestRouterWithParams("POST", "/", bytes.NewBuffer(bodyJSON), "", handler, 1, "POST", "/")
checker(w)
return w
}

func TestSystemsAdvisoriesView(t *testing.T) {
doTestView(t, PostSystemsAdvisories, nil, nil, func(w *httptest.ResponseRecorder) {
var output SystemsAdvisoriesResponse
CheckResponse(t, w, http.StatusOK, &output)
assert.Equal(t, output.Data["00000000-0000-0000-0000-000000000001"][0], AdvisoryName("RH-1"))
assert.Equal(t, output.Data["00000000-0000-0000-0000-000000000001"][1], AdvisoryName("RH-3"))
assert.Equal(t, 0, len(output.Data["00000000-0000-0000-0000-000000000002"]))
})
w := doTestView(t, PostSystemsAdvisories, nil, nil)
var output SystemsAdvisoriesResponse
CheckResponse(t, w, http.StatusOK, &output)
assert.Equal(t, output.Data["00000000-0000-0000-0000-000000000001"][0], AdvisoryName("RH-1"))
assert.Equal(t, output.Data["00000000-0000-0000-0000-000000000001"][1], AdvisoryName("RH-3"))
assert.Equal(t, 0, len(output.Data["00000000-0000-0000-0000-000000000002"]))
}

func TestAdvisoriesSystemsView(t *testing.T) {
doTestView(t, PostAdvisoriesSystems, nil, nil, func(w *httptest.ResponseRecorder) {
var output AdvisoriesSystemsResponse
CheckResponse(t, w, http.StatusOK, &output)
assert.Equal(t, output.Data["RH-1"][0], SystemID("00000000-0000-0000-0000-000000000001"))
assert.Equal(t, output.Data["RH-3"][0], SystemID("00000000-0000-0000-0000-000000000001"))
})
w := doTestView(t, PostAdvisoriesSystems, nil, nil)
var output AdvisoriesSystemsResponse
CheckResponse(t, w, http.StatusOK, &output)
assert.Equal(t, output.Data["RH-1"][0], SystemID("00000000-0000-0000-0000-000000000001"))
assert.Equal(t, output.Data["RH-3"][0], SystemID("00000000-0000-0000-0000-000000000001"))
}

func TestSystemAdvisoriesViewOffsetLimit(t *testing.T) {
limit := 3
offset := 0
doTestView(t, PostSystemsAdvisories, &limit, &offset, func(w *httptest.ResponseRecorder) {
var output SystemsAdvisoriesResponse
CheckResponse(t, w, http.StatusOK, &output)
assert.Equal(t, 2, len(output.Data))
_, has := output.Data["00000000-0000-0000-0000-000000000001"]
assert.True(t, has)
})
w := doTestView(t, PostSystemsAdvisories, &limit, &offset)
var output SystemsAdvisoriesResponse
CheckResponse(t, w, http.StatusOK, &output)
assert.Equal(t, 2, len(output.Data))
_, has := output.Data["00000000-0000-0000-0000-000000000001"]
assert.True(t, has)
}

func TestSystemAdvisoriesViewOffsetOverflow(t *testing.T) {
limit := 1
offset := 100
doTestView(t, PostSystemsAdvisories, &limit, &offset, func(w *httptest.ResponseRecorder) {
var errResp utils.ErrorResponse
CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, InvalidOffsetMsg, errResp.Error)
})
w := doTestView(t, PostSystemsAdvisories, &limit, &offset)
var errResp utils.ErrorResponse
CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, InvalidOffsetMsg, errResp.Error)
}

func TestSystemAdvisoriesViewWrongOffset(t *testing.T) {
offset := 1000
doTestView(t, PostSystemsAdvisories, nil, &offset, func(w *httptest.ResponseRecorder) {
var errResp utils.ErrorResponse
CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, InvalidOffsetMsg, errResp.Error)
})
w := doTestView(t, PostSystemsAdvisories, nil, &offset)
var errResp utils.ErrorResponse
CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, InvalidOffsetMsg, errResp.Error)
}

func TestAvisorySystemsViewOffsetLimit(t *testing.T) {
limit := 3
offset := 0
doTestView(t, PostAdvisoriesSystems, &limit, &offset, func(w *httptest.ResponseRecorder) {
var output AdvisoriesSystemsResponse
CheckResponse(t, w, http.StatusOK, &output)
assert.Equal(t, 2, len(output.Data))
_, has := output.Data["RH-1"]
assert.True(t, has)
})
w := doTestView(t, PostAdvisoriesSystems, &limit, &offset)
var output AdvisoriesSystemsResponse
CheckResponse(t, w, http.StatusOK, &output)
assert.Equal(t, 2, len(output.Data))
_, has := output.Data["RH-1"]
assert.True(t, has)
}

func TestAvisorySystemsViewOffsetOverflow(t *testing.T) {
limit := 1
offset := 100
doTestView(t, PostAdvisoriesSystems, &limit, &offset, func(w *httptest.ResponseRecorder) {
var errResp utils.ErrorResponse
CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, InvalidOffsetMsg, errResp.Error)
})
w := doTestView(t, PostAdvisoriesSystems, &limit, &offset)
var errResp utils.ErrorResponse
CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, InvalidOffsetMsg, errResp.Error)
}

func TestAvisorySystemsViewWrongOffset(t *testing.T) {
offset := 1000
doTestView(t, PostAdvisoriesSystems, nil, &offset, func(w *httptest.ResponseRecorder) {
var errResp utils.ErrorResponse
CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, InvalidOffsetMsg, errResp.Error)
})
w := doTestView(t, PostAdvisoriesSystems, nil, &offset)
var errResp utils.ErrorResponse
CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, InvalidOffsetMsg, errResp.Error)
}

0 comments on commit 789c2b2

Please sign in to comment.