From 35984ee21cdd36f1beb70a1a01d48849bcd87c2e Mon Sep 17 00:00:00 2001 From: Scott Osteen Date: Thu, 15 Aug 2024 10:02:21 -0500 Subject: [PATCH] created RANDOMKEY command test --- internal/modules/generic/commands_test.go | 74 +++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/internal/modules/generic/commands_test.go b/internal/modules/generic/commands_test.go index aa903a9..d42ab64 100644 --- a/internal/modules/generic/commands_test.go +++ b/internal/modules/generic/commands_test.go @@ -2757,4 +2757,78 @@ func Test_Generic(t *testing.T) { } } }) + + t.Run("Test_HandleRANDOMKEY", func(t *testing.T) { + t.Parallel() + conn, err := internal.GetConnection("localhost", port) + if err != nil { + t.Error(err) + return + } + defer func() { + _ = conn.Close() + }() + client := resp.NewConn(conn) + + tests := []struct { + name string + key string + value string + }{ + { + name: "1. String", + key: "RandKey1", + value: "value1", + }, + { + name: "2. Integer", + key: "RandKey2", + value: "10", + }, + { + name: "3. Float", + key: "RandKey3", + value: "3.142", + }, + } + // Map to check RANDOMKEY output + var expected map[string]string + // Preset the values + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + func(key, value string, expected map[string]string) { + err = client.WriteArray([]resp.Value{resp.StringValue("SET"), resp.StringValue(key), resp.StringValue(value)}) + if err != nil { + t.Error(err) + } + + res, _, err := client.ReadValue() + if err != nil { + t.Error(err) + } + + if !strings.EqualFold(res.String(), "ok") { + t.Errorf("expected preset response to be \"OK\", got %s", res.String()) + } + + expected[key] = "" + }(test.key, test.value, expected) + }) + } + // Test RANDOMKEY + if err = client.WriteArray([]resp.Value{resp.StringValue("RANDOMKEY")}); err != nil { + t.Error(err) + } + + res, _, err := client.ReadValue() + if err != nil { + t.Error(err) + } + + if _, ok := expected[res.String()]; !ok { + t.Errorf("expected one of %v, got %s", expected, res.String()) + } + + }) + }