aboutsummaryrefslogtreecommitdiffstats
path: root/src/orchestrator/pkg/infra/db/mock.go
diff options
context:
space:
mode:
authorBin Yang <bin.yang@windriver.com>2020-02-15 03:02:14 +0000
committerGerrit Code Review <gerrit@onap.org>2020-02-15 03:02:14 +0000
commit8af74ae61508a3fbfd54c25d1cfe037f3ad08ca5 (patch)
treef22f86d106d281aec7ccedf6b7a4f1078f5cef9c /src/orchestrator/pkg/infra/db/mock.go
parente8e3cfc3d3df008505520836fafc9920f5643ca6 (diff)
parentc3e1c9a5fefde3fcb6aaf05c19b18f211c1a43ba (diff)
Merge changes I56fb4643,Ia1e9802a
* changes: Add etcd support in infrastructure layer Restructure code and create module library
Diffstat (limited to 'src/orchestrator/pkg/infra/db/mock.go')
-rw-r--r--src/orchestrator/pkg/infra/db/mock.go94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/orchestrator/pkg/infra/db/mock.go b/src/orchestrator/pkg/infra/db/mock.go
new file mode 100644
index 00000000..1dbca4b4
--- /dev/null
+++ b/src/orchestrator/pkg/infra/db/mock.go
@@ -0,0 +1,94 @@
+/*
+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 (
+ "encoding/json"
+
+ pkgerrors "github.com/pkg/errors"
+)
+
+type MockKey struct {
+ Key string
+}
+
+func (m MockKey) String() string {
+ return m.Key
+}
+
+//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 map[string]map[string][]byte
+ Err error
+}
+
+func (m *MockDB) HealthCheck() error {
+ return m.Err
+}
+
+func (m *MockDB) Create(table string, key Key, tag string, data interface{}) error {
+ return m.Err
+}
+
+func (m *MockDB) Update(table string, key Key, tag string, data interface{}) error {
+ return m.Err
+}
+
+// MockDB uses simple JSON and not BSON
+func (m *MockDB) Unmarshal(inp []byte, out interface{}) error {
+ err := json.Unmarshal(inp, out)
+ if err != nil {
+ return pkgerrors.Wrap(err, "Unmarshaling json")
+ }
+ return nil
+}
+
+func (m *MockDB) Read(table string, key Key, tag string) ([]byte, error) {
+ if m.Err != nil {
+ return nil, m.Err
+ }
+
+ for k, v := range m.Items {
+ if k == key.String() {
+ return v[tag], nil
+ }
+ }
+
+ return nil, m.Err
+}
+
+func (m *MockDB) Delete(table string, key Key, tag string) error {
+ return m.Err
+}
+
+func (m *MockDB) ReadAll(table string, tag string) (map[string][]byte, error) {
+ if m.Err != nil {
+ return nil, m.Err
+ }
+
+ ret := make(map[string][]byte)
+
+ for k, v := range m.Items {
+ for k1, v1 := range v {
+ if k1 == tag {
+ ret[k] = v1
+ }
+ }
+ }
+
+ return ret, nil
+}