Skip to content
Snippets Groups Projects
Select Git revision
  • a05c6a3d3a13ad544e3dfcbd125094c6d585b345
  • main default protected
  • release
  • 1.0.0
4 results

grpc_server_test.go

Blame
  • grpc_server_test.go 3.72 KiB
    /*
     * 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{Fachstelle: &pb.GrpcFachstelle{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)
    		})
    	})
    }