/* * 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 mock import ( "context" pb "fachstellen-proxy/gen/go" "fmt" "github.com/stretchr/testify/assert" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" "net" "testing" "time" ) func TestStartGrpcServer(t *testing.T) { t.Run("should start gRPC server", func(t *testing.T) { SetUpGrpcServer() conn, err := net.DialTimeout("tcp", fmt.Sprintf("localhost:%d", GrpcMockPort), 2*time.Second) assert.NoError(t, err) conn.Close() }) t.Run("TestFachstelleRegistrationEndpoints", func(t *testing.T) { setUpGrpcEnv := func() (pb.FachstelleRegistrationServiceClient, func()) { SetUpGrpcServer() conn, err := grpc.NewClient(fmt.Sprintf("localhost:%d", GrpcMockPort), grpc.WithTransportCredentials(insecure.NewCredentials())) assert.NoError(t, err) cleanUp := func() { conn.Close() } client := pb.NewFachstelleRegistrationServiceClient(conn) return client, cleanUp } t.Run("should have no error", func(t *testing.T) { client, cleanUp := setUpGrpcEnv() defer cleanUp() resp, err := client.Register(context.Background(), &pb.GrpcFachstelleRegistrationRequest{MukId: "testMukId"}) assert.NoError(t, err) assert.NotNil(t, resp) }) t.Run("should have error", func(t *testing.T) { client, cleanUp := setUpGrpcEnv() defer cleanUp() resp, err := client.Register(context.Background(), &pb.GrpcFachstelleRegistrationRequest{}) assert.Error(t, err) assert.Nil(t, resp) }) }) t.Run("TestCollaborationEndpoints", func(t *testing.T) { setUpGrpcEnv := func() (pb.CollaborationServiceClient, func()) { SetUpGrpcServer() conn, err := grpc.NewClient(fmt.Sprintf("localhost:%d", GrpcMockPort), grpc.WithTransportCredentials(insecure.NewCredentials())) assert.NoError(t, err) cleanup := func() { conn.Close() } client := pb.NewCollaborationServiceClient(conn) return client, cleanup } t.Run("TestFindVorgang", func(t *testing.T) { t.Run("should have no error", func(t *testing.T) { client, cleanUp := setUpGrpcEnv() defer cleanUp() resp, err := client.FindVorgang(context.Background(), &pb.GrpcFindVorgangRequest{VorgangId: "testVorgangId", SamlToken: "testSamlToken"}) assert.NoError(t, err) assert.NotNil(t, resp) }) t.Run("should have error", func(t *testing.T) { client, cleanUp := setUpGrpcEnv() defer cleanUp() resp, err := client.FindVorgang(context.Background(), &pb.GrpcFindVorgangRequest{}) assert.Error(t, err) assert.Nil(t, resp) }) }) t.Run("TestGetFileContent", func(t *testing.T) { client, cleanUp := setUpGrpcEnv() defer cleanUp() resp, err := client.GetFileContent(context.Background(), &pb.GrpcGetFileContentRequest{}) assert.NoError(t, err) assert.NotNil(t, resp) }) }) }