1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
package passfile
import (
"reflect"
"strings"
"testing"
)
func TestParse(t *testing.T) {
entries, err := Parse(strings.NewReader(passfile))
if err != nil {
t.Fatalf("expected no error, got: %v", err)
}
if len(entries) != 10 {
t.Fatalf("entries should have exactly 10 entries, got: %d", len(entries))
}
exp := []Entry{
{"postgres", "*", "*", "*", "postgres", "P4ssw0rd"},
{"cql", "*", "*", "*", "cassandra", "cassandra"},
{"godror", "*", "*", "*", "system", "P4ssw0rd"},
{"ignite", "*", "*", "*", "ignite", "ignite"},
{"mymysql", "*", "*", "*", "root", "P4ssw0rd"},
{"mysql", "*", "*", "*", "root", "P4ssw0rd"},
{"oracle", "*", "*", "*", "system", "P4ssw0rd"},
{"pgx", "*", "*", "*", "postgres", "P4ssw0rd"},
{"sqlserver", "*", "*", "*", "sa", "Adm1nP@ssw0rd"},
{"vertica", "*", "*", "*", "dbadmin", "P4ssw0rd"},
}
if !reflect.DeepEqual(entries, exp) {
t.Errorf("entries does not equal expected:\nexp:%#v\n---\ngot:%#v", exp, entries)
}
}
const passfile = `# sample ~/.usqlpass file
#
# format is:
# protocol:host:port:dbname:user:pass
postgres:*:*:*:postgres:P4ssw0rd
cql:*:*:*:cassandra:cassandra
godror:*:*:*:system:P4ssw0rd
ignite:*:*:*:ignite:ignite
mymysql:*:*:*:root:P4ssw0rd
mysql:*:*:*:root:P4ssw0rd
oracle:*:*:*:system:P4ssw0rd
pgx:*:*:*:postgres:P4ssw0rd
sqlserver:*:*:*:sa:Adm1nP@ssw0rd
vertica:*:*:*:dbadmin:P4ssw0rd
`
|