waku-org/go-waku

View on GitHub
waku/v2/api/publish/message_check_test.go

Summary

Maintainability
A
0 mins
Test Coverage
package publish

import (
    "context"
    "testing"

    "github.com/ethereum/go-ethereum/common"
    "github.com/stretchr/testify/require"
)

func TestAddAndDelete(t *testing.T) {
    ctx := context.TODO()
    messageSentCheck := NewMessageSentCheck(ctx, nil, nil, nil, nil, nil, nil)

    messageSentCheck.Add("topic", [32]byte{1}, 1)
    messageSentCheck.Add("topic", [32]byte{2}, 2)
    messageSentCheck.Add("topic", [32]byte{3}, 3)
    messageSentCheck.Add("another-topic", [32]byte{4}, 4)

    require.Equal(t, uint32(1), messageSentCheck.messageIDs["topic"][[32]byte{1}])
    require.Equal(t, uint32(2), messageSentCheck.messageIDs["topic"][[32]byte{2}])
    require.Equal(t, uint32(3), messageSentCheck.messageIDs["topic"][[32]byte{3}])
    require.Equal(t, uint32(4), messageSentCheck.messageIDs["another-topic"][[32]byte{4}])

    messageSentCheck.DeleteByMessageIDs([]common.Hash{[32]byte{1}, [32]byte{2}})
    require.NotNil(t, messageSentCheck.messageIDs["topic"])
    require.Equal(t, uint32(3), messageSentCheck.messageIDs["topic"][[32]byte{3}])

    messageSentCheck.DeleteByMessageIDs([]common.Hash{[32]byte{3}})
    require.Nil(t, messageSentCheck.messageIDs["topic"])

    require.Equal(t, uint32(4), messageSentCheck.messageIDs["another-topic"][[32]byte{4}])
}