Skip to content
Snippets Groups Projects
middleware_test.go 2.81 KiB
Newer Older
  • Learn to ignore specific revisions
  • OZGCloud's avatar
    OZGCloud committed
    /*
     * 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 server
    
    import (
    	"bytes"
    	"antragsraum-proxy/internal/mock"
    	"fmt"
    	"github.com/stretchr/testify/assert"
    	"log"
    	"net/http"
    	"testing"
    )
    
    func TestRequestLoggingMiddleware(t *testing.T) {
    	mock.SetUpGrpcServer()
    	SetUpHttpGateway()
    
    	var buf bytes.Buffer
    	logger.BaseLogger.SetOutput(&buf)
    
    	originalFlags := log.Flags()
    	defer func() {
    		log.SetOutput(nil)
    		log.SetFlags(originalFlags)
    	}()
    
    
    	jsonReplyData := []byte(`{
                              "rueckfrage": {
                                "id": "string",
                                "vorgangId": "string",
                                "vorgangName": "string",
                                "vorgangNummer": "string",
                                "sentAt": "string",
                                "answeredAt": "string",
                                "status": "string",
                                "trustLevel": "string",
                                "accessible": true,
                                "text": "string",
                                "attachmentFileId": [
                                  "string"
                                ],
                                "answers": [
                                  {
                                    "rueckfrageId": "string",
                                    "answerText": "string",
                                    "attachmentFileId": [
                                      "string"
                                    ],
                                    "sentAt": "string"
                                  }
                                ]
                              }
                            }`)
    	http.Post(fmt.Sprintf("http://localhost:8080%v", GetRueckfrageUrlPath), "application/json", bytes.NewBuffer(jsonReplyData))
    
    OZGCloud's avatar
    OZGCloud committed
    
    	logOutput := buf.String()
    
    	assert.Contains(t, logOutput, "received request with body: {\"rueckfrage\"")
    	assert.Contains(t, logOutput, "successfully handled request with body: {\"rueckfrage\"...")
    
    OZGCloud's avatar
    OZGCloud committed
    }