...

Source file src/github.com/jackc/pgservicefile/pgservicefile_test.go

Documentation: github.com/jackc/pgservicefile

     1  package pgservicefile_test
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  
     7  	"github.com/jackc/pgservicefile"
     8  	"github.com/stretchr/testify/assert"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestParseServicefile(t *testing.T) {
    13  	buf := bytes.NewBufferString(`# A comment
    14  [abc]
    15  host=abc.example.com
    16  port=9999
    17  dbname=abcdb
    18  user=abcuser
    19  # Another comment
    20  
    21  [def]
    22  host = def.example.com
    23  dbname = defdb
    24  user = defuser
    25  application_name = has space
    26  `)
    27  
    28  	servicefile, err := pgservicefile.ParseServicefile(buf)
    29  	require.NoError(t, err)
    30  	require.NotNil(t, servicefile)
    31  
    32  	assert.Len(t, servicefile.Services, 2)
    33  	assert.Equal(t, "abc", servicefile.Services[0].Name)
    34  	assert.Equal(t, "def", servicefile.Services[1].Name)
    35  
    36  	abc, err := servicefile.GetService("abc")
    37  	require.NoError(t, err)
    38  	assert.Equal(t, servicefile.Services[0], abc)
    39  	assert.Len(t, abc.Settings, 4)
    40  	assert.Equal(t, "abc.example.com", abc.Settings["host"])
    41  	assert.Equal(t, "9999", abc.Settings["port"])
    42  	assert.Equal(t, "abcdb", abc.Settings["dbname"])
    43  	assert.Equal(t, "abcuser", abc.Settings["user"])
    44  
    45  	def, err := servicefile.GetService("def")
    46  	require.NoError(t, err)
    47  	assert.Equal(t, servicefile.Services[1], def)
    48  	assert.Len(t, def.Settings, 4)
    49  	assert.Equal(t, "def.example.com", def.Settings["host"])
    50  	assert.Equal(t, "defdb", def.Settings["dbname"])
    51  	assert.Equal(t, "defuser", def.Settings["user"])
    52  	assert.Equal(t, "has space", def.Settings["application_name"])
    53  }
    54  
    55  func TestParseServicefileWithInvalidFile(t *testing.T) {
    56  	buf := bytes.NewBufferString("Invalid syntax\n")
    57  
    58  	servicefile, err := pgservicefile.ParseServicefile(buf)
    59  	assert.Error(t, err)
    60  	assert.Nil(t, servicefile)
    61  }
    62  

View as plain text