diff --git a/pkg/collections/collection_test.go b/pkg/collections/collection_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..26be4e257a545c5952e9ff190965d89abdebbe09
--- /dev/null
+++ b/pkg/collections/collection_test.go
@@ -0,0 +1,69 @@
+package collections
+
+import (
+	"testing"
+
+	"github.com/stretchr/testify/require"
+)
+
+func TestView_Equal(t *testing.T) {
+	tests := []struct {
+		name   string
+		input1 *View
+		input2 *View
+		output bool
+	}{
+		{
+			name:   "v==nil,v1==nil",
+			input1: nil,
+			input2: nil,
+			output: true,
+		},
+		{
+			name:   "v!=nil,v1==nil",
+			input1: &View{},
+			input2: nil,
+			output: false,
+		},
+		{
+			name:   "v==nil,v1!=nil",
+			input1: nil,
+			input2: &View{},
+			output: false,
+		},
+		{
+			name: "v!=nil,v1!=nil,v!=v1",
+			input1: &View{
+				SpaceID:      "spaceID",
+				EnvID:        "envID",
+				CollectionID: "collectionID",
+				Filter:       "filter",
+			},
+			input2: &View{},
+			output: false,
+		},
+		{
+			name: "v!=nil,v1!=nil,v==v1",
+			input1: &View{
+				SpaceID:      "spaceID",
+				EnvID:        "envID",
+				CollectionID: "collectionID",
+				Filter:       "filter",
+			},
+			input2: &View{
+				SpaceID:      "spaceID",
+				EnvID:        "envID",
+				CollectionID: "collectionID",
+				Filter:       "filter",
+			},
+			output: true,
+		},
+	}
+
+	for _, tc := range tests {
+		t.Run(tc.name, func(t *testing.T) {
+			output := tc.input1.Equal(tc.input2)
+			require.Equal(t, tc.output, output)
+		})
+	}
+}