github.com/qiniu/go-sdk/v7@v7.27.0/client/dialer_test.go (about)

     1  //go:build unit
     2  // +build unit
     3  
     4  package client
     5  
     6  import (
     7  	"context"
     8  	"fmt"
     9  	"net"
    10  	"net/http"
    11  	"net/http/httptest"
    12  	"testing"
    13  )
    14  
    15  func TestDefaultDialer(t *testing.T) {
    16  	var responseBody struct {
    17  		Status string `json:"status"`
    18  	}
    19  	mux := http.NewServeMux()
    20  	mux.Handle("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    21  		w.Header().Add("Content-Type", "application/json")
    22  		w.Write([]byte(`{"status":"ok"}`))
    23  	}))
    24  	server := httptest.NewServer(mux)
    25  	defer server.Close()
    26  
    27  	port := server.Listener.Addr().(*net.TCPAddr).Port
    28  
    29  	ctx := WithResolvedIPs(context.Background(), "www.qiniu.com", []net.IP{net.IPv4(127, 0, 0, 1)})
    30  	err := DefaultClient.Call(ctx, &responseBody, http.MethodGet, fmt.Sprintf("http://www.qiniu.com:%d/", port), nil)
    31  	if err != nil {
    32  		t.Fatal(err)
    33  	}
    34  	if responseBody.Status != "ok" {
    35  		t.Fatal("unexpected response")
    36  	}
    37  }