package services import ( "bytes" "io" "net/http" "net/http/httptest" "testing" ) func TestPacketaService_GetPacketStatus_Success(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { t.Fatalf("expected POST request, got %s", r.Method) } body, err := io.ReadAll(r.Body) if err != nil { t.Fatalf("failed to read request body: %v", err) } if !bytes.Contains(body, []byte("")) { t.Fatalf("expected packetStatus XML request, got: %s", string(body)) } w.Header().Set("Content-Type", "text/xml") _, _ = w.Write([]byte(` ok DELIVERED DELIVERED `)) })) defer server.Close() service := &PacketaService{ ApiPassword: "test-password", ApiUrl: server.URL, EshopName: "TestEshop", } status, err := service.GetPacketStatus("12345") if err != nil { t.Fatalf("GetPacketStatus returned error: %v", err) } if status != "DELIVERED" { t.Fatalf("expected status 'DELIVERED', got %q", status) } }