github.com/ngicks/gokugen@v0.0.5/impl/repository/random_string_generator_test.go (about)

     1  package repository_test
     2  
     3  import (
     4  	"encoding/hex"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/ngicks/gokugen/impl/repository"
     9  	"github.com/ngicks/type-param-common/set"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestRandomStrGen(t *testing.T) {
    14  	// byteLen must be large enough so that no overlapping occurs.
    15  	byteLen := uint(128)
    16  	generator := repository.NewRandStringGenerator(time.Now().UnixMicro(), byteLen, hex.NewEncoder)
    17  	genStrSet := set.Set[string]{}
    18  
    19  	for i := 0; i < 1000; i++ {
    20  		s, err := generator.Generate()
    21  		if err != nil {
    22  			t.Fatal(err)
    23  		}
    24  		require.Len(t, s, 128*2)
    25  		genStrSet.Add(s)
    26  	}
    27  	require.Equal(t, genStrSet.Len(), 1000)
    28  }