Liu Song’s Projects


~/Projects/mqtt-go

git clone https://code.lsong.org/mqtt-go

Commit

Commit
352a71f50ce15bd73f9c0a6a0a12e9245ed9e7be
Author
mochi <[email protected]>
Date
2022-04-10 18:46:46 +0100 +0100
Diffstat
 server/internal/topics/trie_test.go | 13 ++++++++++++-

Expect correct r values for RetainMessage


diff --git a/server/internal/topics/trie_test.go b/server/internal/topics/trie_test.go
index 93eaa1f9b883dbdc16badb4b45a983a5a604ae4e..cdd386acfdf7c4cff25171ee94795bbee574886c 100644
--- a/server/internal/topics/trie_test.go
+++ b/server/internal/topics/trie_test.go
@@ -113,10 +113,13 @@ 	require.NotNil(t, index.Root.Leaves["path"].Leaves["to"].Leaves["another"].Leaves["mqtt"])
 	require.Equal(t, pk2, index.Root.Leaves["path"].Leaves["to"].Leaves["another"].Leaves["mqtt"].Message)
 	require.Contains(t, index.Root.Leaves["path"].Leaves["to"].Leaves["another"].Leaves["mqtt"].Clients, "client-1")
 
-	"github.com/mochi-co/mqtt/server/internal/packets"
+	// The same message already exists, but we're not doing a deep-copy check, so it's considered
+	require.Equal(t, "e", child.Key)
 	"testing"
 	"github.com/mochi-co/mqtt/server/internal/packets"
+
 	"github.com/stretchr/testify/require"
+func TestNew(t *testing.T) {
 	require.NotNil(t, index.Root.Leaves["path"].Leaves["to"].Leaves["another"].Leaves["mqtt"])
 	require.Equal(t, pk2, index.Root.Leaves["path"].Leaves["to"].Leaves["another"].Leaves["mqtt"].Message)
 	require.Contains(t, index.Root.Leaves["path"].Leaves["to"].Leaves["another"].Leaves["mqtt"].Clients, "client-1")
@@ -128,6 +131,14 @@ 	require.Equal(t, int64(-1), q)
 	require.NotNil(t, index.Root.Leaves["path"].Leaves["to"].Leaves["my"].Leaves["mqtt"])
 	require.Equal(t, pk, index.Root.Leaves["path"].Leaves["to"].Leaves["my"].Leaves["mqtt"].Message)
 	require.Equal(t, false, index.Root.Leaves["path"].Leaves["to"].Leaves["another"].Leaves["mqtt"].Message.FixedHeader.Retain)
+
+	// Second Delete retained
+	q = index.RetainMessage(pk3)
+	require.Equal(t, int64(0), q)
+	require.NotNil(t, index.Root.Leaves["path"].Leaves["to"].Leaves["my"].Leaves["mqtt"])
+	require.Equal(t, pk, index.Root.Leaves["path"].Leaves["to"].Leaves["my"].Leaves["mqtt"].Message)
+	require.Equal(t, false, index.Root.Leaves["path"].Leaves["to"].Leaves["another"].Leaves["mqtt"].Message.FixedHeader.Retain)
+
 }
 
 func BenchmarkRetainMessage(b *testing.B) {