package expect

import (
	"net/http"
	"testing"

	v1 "github.com/AlchemyTelcoSolutions/callisto-so-bff/api/v1"
	testModels "github.com/AlchemyTelcoSolutions/callisto-so-bff/integration_tests/models"
	"github.com/stretchr/testify/require"
)

func BadRequestError(t *testing.T, received v1.PostSaleOrdersRestResponse, expected v1.PostSaleOrdersRestResponse) {
	require.Equal(t, expected.Success, received.Success)
	require.Equal(t, expected.Error, received.Error)
}

func NotFoundError(t *testing.T, reqError testModels.RequestError) {
	require.Equal(t, http.StatusNotFound, reqError.StatusCode)
	require.Equal(t, http.StatusText(http.StatusNotFound), *reqError.RestErr.Message)
}

func InternalError(t *testing.T, reqError testModels.RequestError) {
	require.Equal(t, http.StatusInternalServerError, reqError.StatusCode)
	require.Equal(t, http.StatusText(http.StatusInternalServerError), *reqError.RestErr.Message)
}

func BadRequestResponseError(t *testing.T, received v1.Response, expected v1.Response) {
	// failed one should receive success = false
	require.Equal(t, false, received.Success)
	// compare the exact error
	require.Equal(t, expected.Error, received.Error)
}
