//
// Copyright (C) 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"
	"testing"
	"time"
)

func TestHeaderMatcher(t *testing.T) {
	t.Run("should accept header", func(t *testing.T) {
		_, accepted := HeaderMatcher(GrpcAddressHeader)

		assert.True(t, accepted)
	})

	t.Run("should reject header", func(t *testing.T) {
		_, accepted := HeaderMatcher("X-Rejected-Header")

		assert.False(t, accepted)
	})
}

func TestStartHttpGateway(t *testing.T) {
	SetUpHttpGateway()

	conn, err := net.DialTimeout("tcp", "localhost:8082", 2*time.Second)

	assert.NoError(t, err)

	conn.Close()
}