diff --git a/internal/regofunc/http_header_test.go b/internal/regofunc/http_header_test.go
index 374ffdabef19342064a3777f905048330e37c0b1..908039cb321a4f20f41b51a3f5efc5e3a3e66837 100644
--- a/internal/regofunc/http_header_test.go
+++ b/internal/regofunc/http_header_test.go
@@ -1 +1,46 @@
package regofunc_test
+
+import (
+ "context"
+ "testing"
+
+ "github.com/open-policy-agent/opa/rego"
+ "github.com/stretchr/testify/assert"
+
+ "gitlab.com/gaia-x/data-infrastructure-federation-services/tsa/policy/internal/regofunc"
+)
+
+func TestGetHeaderFunc(t *testing.T) {
+ headers := map[string]string{
+ "Authorization": "Bearer XXX",
+ "X-Location": "https://example.com",
+ }
+
+ t.Run("get Authorization header", func(t *testing.T) {
+ r := rego.New(
+ rego.Query(`external.http.header("Authorization")`),
+ rego.Function1(regofunc.GetHeaderFunc(headers)),
+ )
+ resultSet, err := r.Eval(context.Background())
+ assert.NoError(t, err)
+
+ result := resultSet[0].Expressions[0].Value
+
+ assert.NoError(t, err)
+ assert.Equal(t, "Bearer XXX", result)
+ })
+
+ t.Run("get X-Location header", func(t *testing.T) {
+ r := rego.New(
+ rego.Query(`external.http.header("X-Location")`),
+ rego.Function1(regofunc.GetHeaderFunc(headers)),
+ )
+ resultSet, err := r.Eval(context.Background())
+ assert.NoError(t, err)
+
+ result := resultSet[0].Expressions[0].Value
+
+ assert.NoError(t, err)
+ assert.Equal(t, "https://example.com", result)
+ })
+}