Browse Source

added test and changed how strings were generated for make random string

0xdcarns 3 years ago
parent
commit
1a065f680b
2 changed files with 33 additions and 10 deletions
  1. 7 1
      netclient/ncutils/netclientutils.go
  2. 26 9
      netclient/ncutils/netclientutils_test.go

+ 7 - 1
netclient/ncutils/netclientutils.go

@@ -572,7 +572,13 @@ func ServerAddrSliceContains(slice []models.ServerAddr, item models.ServerAddr)
 
 // MakeRandomString - generates a random string of len n
 func MakeRandomString(n int) string {
+	const validChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
 	result := make([]byte, n)
-	rand.Reader.Read(result)
+	if _, err := rand.Reader.Read(result); err != nil {
+		return ""
+	}
+	for i, b := range result {
+		result[i] = validChars[b%byte(len(validChars))]
+	}
 	return string(result)
 }

+ 26 - 9
netclient/ncutils/netclientutils_test.go

@@ -1,15 +1,32 @@
 package ncutils
 
-import "testing"
+import (
+	"strings"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+)
 
 func TestMakeRandomString(t *testing.T) {
-        for testCase := 0; testCase < 100; testCase++ {
-                for size := 2; size < 2058; size++ {
-                        if length := len(MakeRandomString(size)); length != size {
-                                t.Fatalf("expected random string of size %d, got %d instead", size, length)
-                        }
-                }
-        }
+	for testCase := 0; testCase < 100; testCase++ {
+		for size := 2; size < 2058; size++ {
+			if length := len(MakeRandomString(size)); length != size {
+				t.Fatalf("expected random string of size %d, got %d instead", size, length)
+			}
+		}
+	}
 }
 
-
+func TestMakeRandomStringValid(t *testing.T) {
+	lengthStr := MakeRandomString(10)
+	assert.Equal(t, len(lengthStr), 10)
+	validMqID := MakeRandomString(23)
+	assert.False(t, strings.Contains(validMqID, "#"))
+	assert.False(t, strings.Contains(validMqID, "!"))
+	assert.False(t, strings.Contains(validMqID, "\""))
+	assert.False(t, strings.Contains(validMqID, "\\"))
+	assert.False(t, strings.Contains(validMqID, "+"))
+	assert.False(t, strings.Contains(validMqID, "-"))
+	assert.False(t, strings.Contains(validMqID, "{"))
+	assert.False(t, strings.Contains(validMqID, "}"))
+}