package dao

import (
	"reflect"
	"testing"
)


var baseDaoTestTable = []struct {
	name     string
	typeName string
}{
	{"Server", "string"},
	{"Database", "string"},
	{"MongoDb", "ptr"},
}

func TestCheckBaseDao(t *testing.T) {
	d := BaseDAO{}
	for index, testData := range baseDaoTestTable {
		givenType := reflect.TypeOf(d).Field(index).Type.Kind().String()
		if givenType != testData.typeName {
			t.Fail()
		}
	}
}

func TestConnectDb(t *testing.T) {
	d := BaseDAO{}
	d.Connect()
	if d.MongoDb == nil {
		t.Fail()
	}
}

func TestDatabasesConfig(t *testing.T) {
	kontorDb := KontorDb
	if kontorDb.Server != "localhost" {
		t.Fail()
	}
	if kontorDb.Database != "kontor" {
		t.Fail()
	}
	testDb := TestDb
	if testDb.Server != "localhost" {
		t.Fail()
	}
	if testDb.Database != "kontor_test" {
		t.Fail()
	}
}
