package http

import (
	"net/url"
	"strings"
	"testing"
)

type Request struct {
	Name   string `json:"name"`
	Field1 string
	Field2 string
	Field3 int64
}

func TestValidPath(t *testing.T) {
	req := &Request{Name: "vtolstov", Field1: "field1", Field2: "field2", Field3: 10}
	p, m, err := newPathRequest("/api/v1/{name}/list", "GET", "", req)
	if err != nil {
		t.Fatal(err)
	}
	u, err := url.Parse(p)
	if err != nil {
		t.Fatal(err)
	}
	_ = m
	parts := strings.Split(u.RawQuery, "&")
	if len(parts) != 3 {
		t.Fatalf("invalid path: %v", parts)
	}
}

func TestInvalidPath(t *testing.T) {
	req := &Request{Name: "vtolstov", Field1: "field1", Field2: "field2", Field3: 10}
	p, m, err := newPathRequest("/api/v1/{xname}/list", "GET", "", req)
	if err == nil {
		t.Fatalf("path param must not be filled")
	}
	_, _ = p, m
}