...

Source file src/github.com/lib/pq/url_test.go

Documentation: github.com/lib/pq

     1  package pq
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestSimpleParseURL(t *testing.T) {
     8  	expected := "host='hostname.remote'"
     9  	str, err := ParseURL("postgres://hostname.remote")
    10  	if err != nil {
    11  		t.Fatal(err)
    12  	}
    13  
    14  	if str != expected {
    15  		t.Fatalf("unexpected result from ParseURL:\n+ %v\n- %v", str, expected)
    16  	}
    17  }
    18  
    19  func TestIPv6LoopbackParseURL(t *testing.T) {
    20  	expected := "host='::1' port='1234'"
    21  	str, err := ParseURL("postgres://[::1]:1234")
    22  	if err != nil {
    23  		t.Fatal(err)
    24  	}
    25  
    26  	if str != expected {
    27  		t.Fatalf("unexpected result from ParseURL:\n+ %v\n- %v", str, expected)
    28  	}
    29  }
    30  
    31  func TestFullParseURL(t *testing.T) {
    32  	expected := `dbname='database' host='hostname.remote' password='top secret' port='1234' user='username'`
    33  	str, err := ParseURL("postgres://username:top%20secret@hostname.remote:1234/database")
    34  	if err != nil {
    35  		t.Fatal(err)
    36  	}
    37  
    38  	if str != expected {
    39  		t.Fatalf("unexpected result from ParseURL:\n+ %s\n- %s", str, expected)
    40  	}
    41  }
    42  
    43  func TestInvalidProtocolParseURL(t *testing.T) {
    44  	_, err := ParseURL("http://hostname.remote")
    45  	switch err {
    46  	case nil:
    47  		t.Fatal("Expected an error from parsing invalid protocol")
    48  	default:
    49  		msg := "invalid connection protocol: http"
    50  		if err.Error() != msg {
    51  			t.Fatalf("Unexpected error message:\n+ %s\n- %s",
    52  				err.Error(), msg)
    53  		}
    54  	}
    55  }
    56  
    57  func TestMinimalURL(t *testing.T) {
    58  	cs, err := ParseURL("postgres://")
    59  	if err != nil {
    60  		t.Fatal(err)
    61  	}
    62  
    63  	if cs != "" {
    64  		t.Fatalf("expected blank connection string, got: %q", cs)
    65  	}
    66  }
    67  

View as plain text