1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-28 13:48:49 +08:00
Mainflux.mainflux/things/redis/channels_test.go

158 lines
3.7 KiB
Go
Raw Normal View History

// Copyright (c) Mainflux
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
// SPDX-License-Identifier: Apache-2.0
package redis_test
import (
2019-07-18 15:01:09 +02:00
"context"
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
"fmt"
"testing"
"github.com/mainflux/mainflux/things/redis"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestConnect(t *testing.T) {
channelCache := redis.NewChannelCache(redisClient)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
MF-475 - Replace increment ID with UUID (#490) * Update increment ID to UUID in things service Update increment ID to UUID for things and channels in things service and proto files. Also, update ID type from uint to string. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in http adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in ws adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in CoAP adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in normalizer service Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in writer services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in reader services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in SDK Update increment ID to UUID in SDK. Update id type to string. Update tests. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in mqtt adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Remove unnecessary case from influxdb reader Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update tests in order to increase code coverage Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update lora adapter to use string ID instead of unsigned int Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
2018-12-05 13:09:25 +01:00
cid := "123"
tid := "321"
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
cases := []struct {
desc string
MF-475 - Replace increment ID with UUID (#490) * Update increment ID to UUID in things service Update increment ID to UUID for things and channels in things service and proto files. Also, update ID type from uint to string. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in http adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in ws adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in CoAP adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in normalizer service Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in writer services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in reader services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in SDK Update increment ID to UUID in SDK. Update id type to string. Update tests. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in mqtt adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Remove unnecessary case from influxdb reader Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update tests in order to increase code coverage Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update lora adapter to use string ID instead of unsigned int Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
2018-12-05 13:09:25 +01:00
cid string
tid string
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
}{
{
desc: "connect thing to channel",
cid: cid,
tid: tid,
},
{
desc: "connect already connected thing to channel",
cid: cid,
tid: tid,
},
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
}
for _, tc := range cases {
2019-07-18 15:01:09 +02:00
err := channelCache.Connect(context.Background(), cid, tid)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
assert.Nil(t, err, fmt.Sprintf("%s: fail to connect due to: %s\n", tc.desc, err))
}
}
func TestHasThing(t *testing.T) {
channelCache := redis.NewChannelCache(redisClient)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
MF-475 - Replace increment ID with UUID (#490) * Update increment ID to UUID in things service Update increment ID to UUID for things and channels in things service and proto files. Also, update ID type from uint to string. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in http adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in ws adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in CoAP adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in normalizer service Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in writer services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in reader services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in SDK Update increment ID to UUID in SDK. Update id type to string. Update tests. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in mqtt adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Remove unnecessary case from influxdb reader Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update tests in order to increase code coverage Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update lora adapter to use string ID instead of unsigned int Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
2018-12-05 13:09:25 +01:00
cid := "123"
tid := "321"
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
2019-07-18 15:01:09 +02:00
err := channelCache.Connect(context.Background(), cid, tid)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
require.Nil(t, err, fmt.Sprintf("connect thing to channel: fail to connect due to: %s\n", err))
cases := map[string]struct {
MF-475 - Replace increment ID with UUID (#490) * Update increment ID to UUID in things service Update increment ID to UUID for things and channels in things service and proto files. Also, update ID type from uint to string. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in http adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in ws adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in CoAP adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in normalizer service Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in writer services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in reader services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in SDK Update increment ID to UUID in SDK. Update id type to string. Update tests. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in mqtt adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Remove unnecessary case from influxdb reader Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update tests in order to increase code coverage Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update lora adapter to use string ID instead of unsigned int Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
2018-12-05 13:09:25 +01:00
cid string
tid string
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
hasAccess bool
}{
"access check for thing that has access": {
cid: cid,
tid: tid,
hasAccess: true,
},
"access check for thing without access": {
cid: cid,
tid: cid,
hasAccess: false,
},
"access check for non-existing channel": {
cid: tid,
tid: tid,
hasAccess: false,
},
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
}
for desc, tc := range cases {
2019-07-18 15:01:09 +02:00
hasAccess := channelCache.HasThing(context.Background(), tc.cid, tc.tid)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
assert.Equal(t, tc.hasAccess, hasAccess, fmt.Sprintf("%s: expected %t got %t\n", desc, tc.hasAccess, hasAccess))
}
}
func TestDisconnect(t *testing.T) {
channelCache := redis.NewChannelCache(redisClient)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
MF-475 - Replace increment ID with UUID (#490) * Update increment ID to UUID in things service Update increment ID to UUID for things and channels in things service and proto files. Also, update ID type from uint to string. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in http adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in ws adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in CoAP adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in normalizer service Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in writer services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in reader services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in SDK Update increment ID to UUID in SDK. Update id type to string. Update tests. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in mqtt adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Remove unnecessary case from influxdb reader Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update tests in order to increase code coverage Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update lora adapter to use string ID instead of unsigned int Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
2018-12-05 13:09:25 +01:00
cid := "123"
tid := "321"
tid2 := "322"
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
2019-07-18 15:01:09 +02:00
err := channelCache.Connect(context.Background(), cid, tid)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
require.Nil(t, err, fmt.Sprintf("connect thing to channel: fail to connect due to: %s\n", err))
cases := []struct {
desc string
MF-475 - Replace increment ID with UUID (#490) * Update increment ID to UUID in things service Update increment ID to UUID for things and channels in things service and proto files. Also, update ID type from uint to string. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in http adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in ws adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in CoAP adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in normalizer service Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in writer services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in reader services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in SDK Update increment ID to UUID in SDK. Update id type to string. Update tests. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in mqtt adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Remove unnecessary case from influxdb reader Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update tests in order to increase code coverage Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update lora adapter to use string ID instead of unsigned int Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
2018-12-05 13:09:25 +01:00
cid string
tid string
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
hasAccess bool
}{
{
desc: "disconnecting connected thing",
cid: cid,
tid: tid,
hasAccess: false,
},
{
desc: "disconnecting non-connected thing",
cid: cid,
tid: tid2,
hasAccess: false,
},
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
}
for _, tc := range cases {
2019-07-18 15:01:09 +02:00
err := channelCache.Disconnect(context.Background(), tc.cid, tc.tid)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
assert.Nil(t, err, fmt.Sprintf("%s: fail due to: %s\n", tc.desc, err))
2019-07-18 15:01:09 +02:00
hasAccess := channelCache.HasThing(context.Background(), tc.cid, tc.tid)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
assert.Equal(t, tc.hasAccess, hasAccess, fmt.Sprintf("access check after %s: expected %t got %t\n", tc.desc, tc.hasAccess, hasAccess))
}
}
func TestRemove(t *testing.T) {
channelCache := redis.NewChannelCache(redisClient)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
MF-475 - Replace increment ID with UUID (#490) * Update increment ID to UUID in things service Update increment ID to UUID for things and channels in things service and proto files. Also, update ID type from uint to string. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in http adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in ws adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in CoAP adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in normalizer service Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in writer services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in reader services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in SDK Update increment ID to UUID in SDK. Update id type to string. Update tests. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in mqtt adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Remove unnecessary case from influxdb reader Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update tests in order to increase code coverage Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update lora adapter to use string ID instead of unsigned int Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
2018-12-05 13:09:25 +01:00
cid := "123"
cid2 := "124"
tid := "321"
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
2019-07-18 15:01:09 +02:00
err := channelCache.Connect(context.Background(), cid, tid)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
require.Nil(t, err, fmt.Sprintf("connect thing to channel: fail to connect due to: %s\n", err))
cases := []struct {
desc string
MF-475 - Replace increment ID with UUID (#490) * Update increment ID to UUID in things service Update increment ID to UUID for things and channels in things service and proto files. Also, update ID type from uint to string. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in http adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in ws adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in CoAP adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in normalizer service Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in writer services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in reader services Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in SDK Update increment ID to UUID in SDK. Update id type to string. Update tests. Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update increment ID to UUID in mqtt adapter Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Remove unnecessary case from influxdb reader Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update tests in order to increase code coverage Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com> * Update lora adapter to use string ID instead of unsigned int Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
2018-12-05 13:09:25 +01:00
cid string
tid string
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
err error
hasAccess bool
}{
{
desc: "Remove channel from cache",
cid: cid,
tid: tid,
err: nil,
hasAccess: false,
},
{
desc: "Remove non-cached channel from cache",
cid: cid2,
tid: tid,
err: nil,
hasAccess: false,
},
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
}
for _, tc := range cases {
2019-07-18 15:01:09 +02:00
err := channelCache.Remove(context.Background(), tc.cid)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
assert.Nil(t, err, fmt.Sprintf("%s: expected %s got %s\n", tc.desc, tc.err, err))
2019-07-18 15:01:09 +02:00
hasAcces := channelCache.HasThing(context.Background(), tc.cid, tc.tid)
MF-384 - Add test for Redis cache (#405) * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test Signed-off-by: Ivan Milošević <iva@blokovi.com> * MF-384 - Add test for Redis cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add copyright headers Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix copyright header Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix test setup Signed-off-by: Ivan Milošević <iva@blokovi.com> * handling errors and put test cases in maps instead of slices Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case if thing already exists Signed-off-by: Ivan Milošević <iva@blokovi.com> * Fix TestThingSave to use require instead of assert Signed-off-by: Ivan Milošević <iva@blokovi.com> * Add test case for removing non-existing thing from cache Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Remove and test Connect for every case Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use table of test cases for Save Signed-off-by: Ivan Milošević <iva@blokovi.com> * Test cases in slice instead of map for testing Remove Signed-off-by: Ivan Milošević <iva@blokovi.com> * Make test-cases independent, use asserts instead of requires Signed-off-by: Ivan Milošević <iva@blokovi.com> * Use slice and map where appropriate Signed-off-by: Ivan Milošević <iva@blokovi.com>
2018-09-30 02:03:00 +02:00
assert.Equal(t, tc.hasAccess, hasAcces, "%s - check access after removing channel: expected %t got %t\n", tc.desc, tc.hasAccess, hasAcces)
}
}