package storage

import (
	"testing"
)

func TestParseConnStr(t *testing.T) {
	v, err := ToConnData("postgres://foo:bar@localhost:5432/baz")
	if err != nil {
		t.Fatal(err)	
	}
	if v.DbType() != DBTYPE_POSTGRES {
		t.Fatalf("expected type %v, got %v", DBTYPE_POSTGRES, v.DbType())
	}
	v, err = ToConnData("gdbm:///foo/bar")
	if err != nil {
		t.Fatal(err)	
	}
	if v.DbType() != DBTYPE_GDBM {
		t.Fatalf("expected type %v, got %v", DBTYPE_GDBM, v.DbType())
	}
	v, err = ToConnData("/foo/bar")
	if err != nil {
		t.Fatal(err)	
	}
	if v.DbType() != DBTYPE_FS {
		t.Fatalf("expected type %v, got %v", DBTYPE_FS, v.DbType())
	}
	v, err = ToConnData("/foo/bar/")
	if err != nil {
		t.Fatal(err)	
	}
	if v.DbType() != DBTYPE_FS {
		t.Fatalf("expected type %v, got %v", DBTYPE_FS, v.DbType())
	}
	v, err = ToConnData("foo/bar")
	if err != nil {
		t.Fatal(err)
	}
	if v.DbType() != DBTYPE_FS {
		t.Fatalf("expected type %v, got %v", DBTYPE_FS, v.DbType())
	}
	v, err = ToConnData("")
	if err != nil {
		t.Fatal(err)
	}
	if v.DbType() != DBTYPE_MEM {
		t.Fatalf("expected type %v, got %v", DBTYPE_MEM, v.DbType())
	}
	v, err = ToConnData("http://foo/bar")
	if err == nil {
		t.Fatalf("expected error")
	}
	if v.DbType() != DBTYPE_NONE {
		t.Fatalf("expected type %v, got %v", DBTYPE_NONE, v.DbType())
	}
}