From 4303c3069d5d5bb9efc14b1fb7ef6674ac63bbaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Eckel?= Date: Fri, 5 Apr 2024 12:28:45 +0200 Subject: [PATCH] * added mutix in mocks to protect against data races * defined mocks for the dao tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jürgen Eckel --- testutil/keeper/dao.go | 6 ++++-- util/mocks/mqtt.go | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/testutil/keeper/dao.go b/testutil/keeper/dao.go index 8fc16a2..1c40f20 100644 --- a/testutil/keeper/dao.go +++ b/testutil/keeper/dao.go @@ -15,14 +15,16 @@ import ( govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" typesparams "github.com/cosmos/cosmos-sdk/x/params/types" "github.com/golang/mock/gomock" + "github.com/planetmint/planetmint-go/monitor" + monitormocks "github.com/planetmint/planetmint-go/monitor/mocks" "github.com/planetmint/planetmint-go/x/dao/keeper" + daotestutil "github.com/planetmint/planetmint-go/x/dao/testutil" "github.com/planetmint/planetmint-go/x/dao/types" "github.com/stretchr/testify/require" - - daotestutil "github.com/planetmint/planetmint-go/x/dao/testutil" ) func DaoKeeper(t testing.TB) (*keeper.Keeper, sdk.Context) { + monitor.MqttMonitorInstance = &monitormocks.MockMQTTMonitorClientI{} storeKey := sdk.NewKVStoreKey(types.StoreKey) memStoreKey := storetypes.NewMemoryStoreKey(types.MemStoreKey) challengeStoreKey := storetypes.NewMemoryStoreKey(types.ChallengeKey) diff --git a/util/mocks/mqtt.go b/util/mocks/mqtt.go index 0ad5728..0d6bdfd 100644 --- a/util/mocks/mqtt.go +++ b/util/mocks/mqtt.go @@ -16,6 +16,7 @@ type MockMQTTClient struct { UnsubscribeFunc func(topics ...string) mqtt.Token IsConnectedFunc func() bool connected bool + connectedMutex sync.Mutex } // GetConnectFunc fetches the mock client's `Connect` func @@ -98,7 +99,9 @@ func GetUnsubscribeFunc(_ ...string) mqtt.Token { // Connect is the mock client's `Disconnect` func func (m *MockMQTTClient) Connect() mqtt.Token { + m.connectedMutex.Lock() m.connected = true + m.connectedMutex.Unlock() return GetConnectFunc() } @@ -121,5 +124,8 @@ func (m *MockMQTTClient) Unsubscribe(topics ...string) mqtt.Token { } func (m *MockMQTTClient) IsConnected() bool { - return m.connected + m.connectedMutex.Lock() + connected := m.connected + m.connectedMutex.Unlock() + return connected }