diff options
author | Victor Morales <victor.morales@intel.com> | 2018-10-23 11:54:58 -0700 |
---|---|---|
committer | Victor Morales <victor.morales@intel.com> | 2018-11-13 16:20:57 -0800 |
commit | cc05d4af8f082d8174bde5c43fc45b1acc61339f (patch) | |
tree | e5614b80fd1f4762c195eb26f639f7963eb2bb5f /src/k8splugin/db/testing.go | |
parent | 7d2d48d3d0b35de0acd03c6e8a1261efd736edc3 (diff) |
Create UTs to cover DB calls
This change pretends to increase the code coverage creating Unit
Tests for the interactions with the Databases.
Change-Id: I3b78ebe8ddb131e3c06bcee0065ad5eabeed5677
Signed-off-by: Victor Morales <victor.morales@intel.com>
Issue-ID: MULTICLOUD-301
Diffstat (limited to 'src/k8splugin/db/testing.go')
-rw-r--r-- | src/k8splugin/db/testing.go | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/k8splugin/db/testing.go b/src/k8splugin/db/testing.go new file mode 100644 index 00000000..672fcbfb --- /dev/null +++ b/src/k8splugin/db/testing.go @@ -0,0 +1,65 @@ +// +build unit + +/* +Copyright 2018 Intel Corporation. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package db + +import ( + "github.com/hashicorp/consul/api" +) + +//Creating an embedded interface via anonymous variable +//This allows us to make mockDB satisfy the DatabaseConnection +//interface even if we are not implementing all the methods in it +type MockDB struct { + Store + Items api.KVPairs + Err error +} + +func (m *MockDB) Create(key string, value string) error { + return m.Err +} + +func (m *MockDB) Read(key string) (string, error) { + if m.Err != nil { + return "", m.Err + } + + for _, kvpair := range m.Items { + if kvpair.Key == key { + return string(kvpair.Value), nil + } + } + + return "", nil +} + +func (m *MockDB) Delete(key string) error { + return m.Err +} + +func (m *MockDB) ReadAll(prefix string) ([]string, error) { + if m.Err != nil { + return []string{}, m.Err + } + + var res []string + + for _, keypair := range m.Items { + res = append(res, keypair.Key) + } + + return res, nil +} |