Files
2015-02-06 22:03:05 -08:00

143 lines
2.7 KiB
Go

package shared
import (
"testing"
)
const yaml_params = `
---
port: 9999
host: 0.0.0.0 #localhost
# all the params relative to mongodb
mongo:
# the url where to get mongodb
url: localhost:1234
# the name of the database to use
database_name: doorman
# the name of the collection where all the street can be found
doorman_definition_collection: doorman_definitions
# all the parameters relative to nsq message-queue
nsq:
# the url where to find nsq lookupd url
nsq_lookupd_url: 127.0.0.1:4161
# all the parameters relative to nanomsg message-queue
nanomsg:
nanomsg_url: ipc:///tmp/doorman.ipc
`
func TestLoadFromYamlData(t *testing.T) {
p, err := LoadFromYamlData([]byte(yaml_params))
if err != nil {
t.Error(err)
return
}
if p.Port != 9999 {
t.Error("port")
}
if p.Host != "0.0.0.0" {
t.Error("host")
}
}
func TestMongoParams(t *testing.T) {
p, err := LoadFromYamlData([]byte(yaml_params))
if err != nil {
t.Error(err)
return
}
if p.Mongo.Url != "localhost:1234" {
t.Error("mongo.url")
}
if p.Mongo.DatabaseName != "doorman" {
t.Error("mongo.DatabaseName")
}
if p.Mongo.DoormanDefinitionCollection != "doorman_definitions" {
t.Error("Mongo.DoormanDefinitionCollection", p.Mongo.DoormanDefinitionCollection)
}
}
func TestNSQParams(t *testing.T) {
p, err := LoadFromYamlData([]byte(yaml_params))
if err != nil {
t.Error(err)
return
}
if p.NSQ.NSQLookupdUrl != "127.0.0.1:4161" {
t.Error("Nsq.NSQLookupdUrl", p.NSQ.NSQLookupdUrl)
}
}
func TestNanoMsgParams(t *testing.T) {
p, err := LoadFromYamlData([]byte(yaml_params))
if err != nil {
t.Error(err)
return
}
if p.NanoMsg.NanoMsgUrl != "ipc:///tmp/doorman.ipc" {
t.Error("NanoMsgParams.NanoMsgUrl", p.NanoMsg.NanoMsgUrl)
}
}
func TestMinimalParams(t *testing.T) {
params := "---\n"
p, err := LoadFromYamlData([]byte(params))
if err != nil {
t.Error(err)
}
if p.Mongo.Url != "" {
t.Error()
}
if p.Port != 1999 {
t.Error("bad default port", p.Port)
}
if p.Host != "localhost" {
t.Error("bad default host")
}
if p.MessageQueue != "" {
t.Error("message queue")
}
if p.Database != "" {
t.Error("database")
}
}
func TestUseMongoDb(t *testing.T) {
p := &Params{}
if p.Database = ""; p.UseMongoDb() {
t.Error()
}
if p.Database = "mOnGo"; !p.UseMongoDb() {
t.Error()
}
if p.Database = "monGoDb"; !p.UseMongoDb() {
t.Error()
}
}
func TestUseNSQ(t *testing.T) {
p := &Params{}
if p.MessageQueue = ""; p.UseNSQ() {
t.Error()
}
if p.MessageQueue = "nSq"; !p.UseNSQ() {
t.Error()
}
}
func TestUseNanoMsg(t *testing.T) {
p := &Params{}
if p.MessageQueue = ""; p.UseNanomsg() {
t.Error()
}
if p.MessageQueue = "nAnOmSg"; !p.UseNanomsg() {
t.Error()
}
}