Newer
Older
/*
* Copyright (C) 2023-2024
* Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package server
import (
"github.com/stretchr/testify/assert"
"net/http"
"testing"
)
func TestRegisterHomeEndpoint(t *testing.T) {
SetUpHttpGateway()
resp, err := http.Get("http://localhost:8080/")
assert.NoError(t, err)
assert.Equal(t, http.StatusOK, resp.StatusCode)
}
func TestRegisterFachstelleRegistrationEndpoints(t *testing.T) {
mock.SetUpGrpcServer()
SetUpHttpGateway()
jsonData := []byte(`{"fachstelle": {"mukId": "testMukId"}}`)
resp, err := http.Post("http://localhost:8080/api/fachstellen", "application/json", bytes.NewBuffer(jsonData))
assert.NoError(t, err)
assert.Equal(t, http.StatusOK, resp.StatusCode)
}
func TestRegisterCollaborationEndpoints(t *testing.T) {
mock.SetUpGrpcServer()
SetUpHttpGateway()
resp, err := http.Get("http://localhost:8080/api/vorgang/bG9jYWxob3N0L3Rlc3RWb3JnYW5nSWQ=/testSamlToken")
assert.NoError(t, err)
assert.Equal(t, http.StatusOK, resp.StatusCode)
}
assertErroneousRequest := func(jsonData []byte, expectedStatusCode int) {
resp, err := http.Post("http://localhost:8080/api/fachstellen", "application/json", bytes.NewBuffer(jsonData))
assert.Equal(t, expectedStatusCode, resp.StatusCode)
}
t.Run("should have bad request error", func(t *testing.T) {
jsonData := []byte(`{}`)
assertErroneousRequest(jsonData, http.StatusBadRequest)
})
t.Run("should have conflict error", func(t *testing.T) {
jsonData := []byte(`{"fachstelle": {"mukId": "conflictMukId"}}`)
})
t.Run("should have unavailable error", func(t *testing.T) {
jsonData := []byte(`{"fachstelle": {"mukId": "unavailableMukId"}}`)
assertErroneousRequest(jsonData, http.StatusServiceUnavailable)
})
t.Run("should have internal server error", func(t *testing.T) {
jsonData := []byte(`{"fachstelle": {"mukId": "erroneousMukId"}}`)
assertErroneousRequest(jsonData, http.StatusInternalServerError)