1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-05-04 22:17:59 +08:00

75 lines
1.8 KiB
Go
Raw Normal View History

MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
package mocks
import (
"encoding/json"
"strconv"
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
"time"
"github.com/mainflux/mainflux/pkg/messaging"
"github.com/mainflux/mainflux/pkg/uuid"
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
"github.com/mainflux/mainflux/twins"
"github.com/mainflux/senml"
)
MF-1180 - Add redis based twins and states cache (#1184) * Add twins redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add connectToRedis to twins main and twinCache to twins service Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add tracing to twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twins cache mock and test setup for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TestTwinSave to redis twins cache tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add remove twin redis cache test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add channels param to CreateDefinition helper method in mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add IDs test to redis twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify senml rec array and attribute creation funcs by removing unnecessary params Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Align cache remove twin method with service remove twin method Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache funcs to twins save, update and remove Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add def SaveIDs to redis cache and ref to service SaveStates Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TwinSaveIDs tests for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache related env vars desc to README.md Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twinid bson key constant Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Update method to cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Integrate uuid unification related changes Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Use named arguments in interface method declarations Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add env vars to docker-compose file Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Make parameter names in interface methods and implementations consistent Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Wrap vars and consts in var and const blocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-06-05 11:42:16 +02:00
const publisher = "twins"
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
var id = 0
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
// NewService use mock dependencies to create real twins service
func NewService(tokens map[string]string) twins.Service {
auth := NewAuthNServiceClient(tokens)
twinsRepo := NewTwinRepository()
MF-1180 - Add redis based twins and states cache (#1184) * Add twins redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add connectToRedis to twins main and twinCache to twins service Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add tracing to twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twins cache mock and test setup for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TestTwinSave to redis twins cache tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add remove twin redis cache test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add channels param to CreateDefinition helper method in mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add IDs test to redis twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify senml rec array and attribute creation funcs by removing unnecessary params Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Align cache remove twin method with service remove twin method Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache funcs to twins save, update and remove Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add def SaveIDs to redis cache and ref to service SaveStates Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TwinSaveIDs tests for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache related env vars desc to README.md Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twinid bson key constant Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Update method to cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Integrate uuid unification related changes Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Use named arguments in interface method declarations Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add env vars to docker-compose file Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Make parameter names in interface methods and implementations consistent Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Wrap vars and consts in var and const blocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-06-05 11:42:16 +02:00
twinCache := NewTwinCache()
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
statesRepo := NewStateRepository()
uuidProvider := uuid.NewMock()
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
subs := map[string]string{"chanID": "chanID"}
broker := NewBroker(subs)
MF-1180 - Add redis based twins and states cache (#1184) * Add twins redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add connectToRedis to twins main and twinCache to twins service Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add tracing to twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twins cache mock and test setup for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TestTwinSave to redis twins cache tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add remove twin redis cache test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add channels param to CreateDefinition helper method in mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add IDs test to redis twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify senml rec array and attribute creation funcs by removing unnecessary params Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Align cache remove twin method with service remove twin method Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache funcs to twins save, update and remove Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add def SaveIDs to redis cache and ref to service SaveStates Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TwinSaveIDs tests for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache related env vars desc to README.md Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twinid bson key constant Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Update method to cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Integrate uuid unification related changes Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Use named arguments in interface method declarations Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add env vars to docker-compose file Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Make parameter names in interface methods and implementations consistent Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Wrap vars and consts in var and const blocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-06-05 11:42:16 +02:00
return twins.New(broker, auth, twinsRepo, twinCache, statesRepo, uuidProvider, "chanID", nil)
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
}
// CreateDefinition creates twin definition
MF-1180 - Add redis based twins and states cache (#1184) * Add twins redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add connectToRedis to twins main and twinCache to twins service Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add tracing to twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twins cache mock and test setup for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TestTwinSave to redis twins cache tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add remove twin redis cache test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add channels param to CreateDefinition helper method in mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add IDs test to redis twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify senml rec array and attribute creation funcs by removing unnecessary params Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Align cache remove twin method with service remove twin method Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache funcs to twins save, update and remove Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add def SaveIDs to redis cache and ref to service SaveStates Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TwinSaveIDs tests for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache related env vars desc to README.md Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twinid bson key constant Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Update method to cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Integrate uuid unification related changes Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Use named arguments in interface method declarations Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add env vars to docker-compose file Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Make parameter names in interface methods and implementations consistent Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Wrap vars and consts in var and const blocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-06-05 11:42:16 +02:00
func CreateDefinition(channels []string, subtopics []string) twins.Definition {
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
var def twins.Definition
MF-1180 - Add redis based twins and states cache (#1184) * Add twins redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add connectToRedis to twins main and twinCache to twins service Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add tracing to twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twins cache mock and test setup for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TestTwinSave to redis twins cache tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add remove twin redis cache test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add channels param to CreateDefinition helper method in mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add IDs test to redis twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify senml rec array and attribute creation funcs by removing unnecessary params Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Align cache remove twin method with service remove twin method Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache funcs to twins save, update and remove Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add def SaveIDs to redis cache and ref to service SaveStates Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TwinSaveIDs tests for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache related env vars desc to README.md Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twinid bson key constant Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Update method to cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Integrate uuid unification related changes Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Use named arguments in interface method declarations Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add env vars to docker-compose file Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Make parameter names in interface methods and implementations consistent Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Wrap vars and consts in var and const blocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-06-05 11:42:16 +02:00
for i := range channels {
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
attr := twins.Attribute{
MF-1180 - Add redis based twins and states cache (#1184) * Add twins redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add connectToRedis to twins main and twinCache to twins service Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add tracing to twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twins cache mock and test setup for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TestTwinSave to redis twins cache tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add remove twin redis cache test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add channels param to CreateDefinition helper method in mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add IDs test to redis twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify senml rec array and attribute creation funcs by removing unnecessary params Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Align cache remove twin method with service remove twin method Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache funcs to twins save, update and remove Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add def SaveIDs to redis cache and ref to service SaveStates Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TwinSaveIDs tests for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache related env vars desc to README.md Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twinid bson key constant Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Update method to cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Integrate uuid unification related changes Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Use named arguments in interface method declarations Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add env vars to docker-compose file Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Make parameter names in interface methods and implementations consistent Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Wrap vars and consts in var and const blocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-06-05 11:42:16 +02:00
Channel: channels[i],
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
Subtopic: subtopics[i],
PersistState: true,
}
def.Attributes = append(def.Attributes, attr)
}
return def
}
// CreateTwin creates twin
func CreateTwin(channels []string, subtopics []string) twins.Twin {
id++
return twins.Twin{
ID: strconv.Itoa(id),
Definitions: []twins.Definition{CreateDefinition(channels, subtopics)},
}
}
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
// CreateSenML creates SenML record array
MF-1180 - Add redis based twins and states cache (#1184) * Add twins redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add connectToRedis to twins main and twinCache to twins service Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add tracing to twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twins cache mock and test setup for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TestTwinSave to redis twins cache tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add remove twin redis cache test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add channels param to CreateDefinition helper method in mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add IDs test to redis twins cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify senml rec array and attribute creation funcs by removing unnecessary params Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Align cache remove twin method with service remove twin method Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache funcs to twins save, update and remove Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add def SaveIDs to redis cache and ref to service SaveStates Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add TwinSaveIDs tests for redis cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add cache related env vars desc to README.md Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add twinid bson key constant Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Update method to cache Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Integrate uuid unification related changes Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Use named arguments in interface method declarations Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add env vars to docker-compose file Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Make parameter names in interface methods and implementations consistent Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Wrap vars and consts in var and const blocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-06-05 11:42:16 +02:00
func CreateSenML(n int, recs []senml.Record) {
for i, rec := range recs {
rec.BaseTime = float64(time.Now().Unix())
rec.Time = float64(i)
rec.Value = nil
MF-995 - Add Twins tests for endpoint list twins and list states (#1174) * Add ListTwins test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove monotonic time from twins, definitions and attributes creation and update Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Separate twins and states endpoint tests in two files Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add state generation helper funcs to state endpoint tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add createStateResponse() to states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add states test cases Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Simplify RetrieveAll twins and states methods Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service.go to mocks Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Rename mocks.NewService to mocks.New Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add error checking to endpoint state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Fix method comment Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add json response decode success check Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove created and updated fields from twin and state res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove definition fields from twin req and res Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add Create funcs to mocks package Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service save state tests Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add service list states test Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
}
}
// CreateMessage creates Mainflux message using SenML record array
func CreateMessage(attr twins.Attribute, recs []senml.Record) (*messaging.Message, error) {
mRecs, err := json.Marshal(recs)
if err != nil {
return nil, err
}
return &messaging.Message{
Channel: attr.Channel,
Subtopic: attr.Subtopic,
Payload: mRecs,
Publisher: publisher,
}, nil
}