func TestPluginConfigHasValue(t *testing.T) {
	expect := ttesting.NewExpect(t)
	mockPluginCfg := NewPluginConfig("", "mockPlugin")
	mockPluginCfgReader := NewPluginConfigReaderWithError(&mockPluginCfg)
	expect.False(mockPluginCfgReader.HasValue("aKey"))
	mockPluginCfg.Override("aKey", 1)
	expect.True(mockPluginCfgReader.HasValue("aKey"))
}
Function checks if predefined value exists or not
Plan:
Create a new PluginConfig
Add non-predefined Values
Check if added ones return true, and others false
package core
import (
	"github.com/trivago/tgo/tcontainer"
	"github.com/trivago/tgo/ttesting"
	"testing"
)
func TestPluginConfigValidate(t *testing.T) {
	expect := ttesting.NewExpect(t)
	mockPluginCfg := NewPluginConfig("", "core.mockPlugin")
	mockPluginCfgReader := NewPluginConfigReaderWithError(&mockPluginCfg)
	mockPluginCfg.Override("stringKey", "value")
	mockPluginCfg.Override("number", 1)
	sValue, err := mockPluginCfgReader.GetString("stringKey", "")
	expect.NoError(err)
	expect.Equal(sValue, "value")
	err = mockPluginCfg.Validate()
	expect.NoError(err)
	iValue, err := mockPluginCfgReader.GetInt("number", 0)
	expect.NoError(err)
	expect.Equal(iValue, int64(1))
	err = mockPluginCfg.Validate()
	expect.NoError(err)
}
func TestPluginConfigRead(t *testing.T) {
	expect := ttesting.NewExpect(t)
	mockPluginCfg := NewPluginConfig("", "core.mockPlugin")
	mockPluginCfgReader := NewPluginConfigReaderWithError(&mockPluginCfg)
	mockPluginCfg = NewPluginConfig("", "core.mockPlugin")
	mockPluginCfgReader = NewPluginConfigReaderWithError(&mockPluginCfg)
	testMarshalMap := tcontainer.NewMarshalMap()
	testMarshalMap["Enable"] = true
	testMarshalMap["Host"] = "someHost"
	testMarshalMap["Database"] = "someDatabase"
	mockPluginCfg.Read(testMarshalMap)
	expect.True(mockPluginCfg.Enable)
	host, err := mockPluginCfgReader.GetString("Host", "")
	expect.NoError(err)
	expect.Equal(host, "someHost")
	db, err := mockPluginCfgReader.GetString("Database", "")
	expect.NoError(err)
	expect.Equal(db, "someDatabase")
}