64 lines
1.1 KiB
Go
64 lines
1.1 KiB
Go
|
|
package mongo
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/zeromicro/go-zero/core/conf"
|
||
|
|
)
|
||
|
|
|
||
|
|
func loadMongoYAML(t *testing.T, snippet string) Conf {
|
||
|
|
t.Helper()
|
||
|
|
var cfg struct {
|
||
|
|
Mongo Conf
|
||
|
|
}
|
||
|
|
if err := conf.LoadFromYamlBytes([]byte(snippet), &cfg); err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
return cfg.Mongo
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestLoadMongoConf_hostAndPort(t *testing.T) {
|
||
|
|
t.Parallel()
|
||
|
|
c := loadMongoYAML(t, `Mongo:
|
||
|
|
Host: 127.0.0.1
|
||
|
|
Port: 27017
|
||
|
|
Database: gateway
|
||
|
|
`)
|
||
|
|
uri, err := buildConnectionURI(c)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
if uri != "mongodb://127.0.0.1:27017" {
|
||
|
|
t.Fatalf("uri = %q", uri)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestLoadMongoConf_withCompressorsArray(t *testing.T) {
|
||
|
|
t.Parallel()
|
||
|
|
c := loadMongoYAML(t, `Mongo:
|
||
|
|
Host: 127.0.0.1:27017
|
||
|
|
Database: gateway
|
||
|
|
Compressors:
|
||
|
|
- zstd
|
||
|
|
- snappy
|
||
|
|
`)
|
||
|
|
if len(c.Compressors) != 2 {
|
||
|
|
t.Fatalf("compressors = %v", c.Compressors)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestLoadMongoConf_compressorsStringRejected(t *testing.T) {
|
||
|
|
t.Parallel()
|
||
|
|
var cfg struct {
|
||
|
|
Mongo Conf
|
||
|
|
}
|
||
|
|
err := conf.LoadFromYamlBytes([]byte(`Mongo:
|
||
|
|
Host: 127.0.0.1:27017
|
||
|
|
Database: gateway
|
||
|
|
Compressors: zstd
|
||
|
|
`), &cfg)
|
||
|
|
if err == nil {
|
||
|
|
t.Fatal("expected type mismatch for Compressors string")
|
||
|
|
}
|
||
|
|
}
|