github.com/cloudreve/Cloudreve/v3@v3.0.0-20240224133659-3edb00a6484c/pkg/util/common_test.go (about)

     1  package util
     2  
     3  import (
     4  	"github.com/stretchr/testify/assert"
     5  	"testing"
     6  )
     7  
     8  func TestRandStringRunes(t *testing.T) {
     9  	asserts := assert.New(t)
    10  
    11  	// 0 长度字符
    12  	randStr := RandStringRunes(0)
    13  	asserts.Len(randStr, 0)
    14  
    15  	// 16 长度字符
    16  	randStr = RandStringRunes(16)
    17  	asserts.Len(randStr, 16)
    18  
    19  	// 32 长度字符
    20  	randStr = RandStringRunes(32)
    21  	asserts.Len(randStr, 32)
    22  
    23  	//相同长度字符
    24  	sameLenStr1 := RandStringRunes(32)
    25  	sameLenStr2 := RandStringRunes(32)
    26  	asserts.NotEqual(sameLenStr1, sameLenStr2)
    27  }
    28  
    29  func TestContainsUint(t *testing.T) {
    30  	asserts := assert.New(t)
    31  	asserts.True(ContainsUint([]uint{0, 2, 3, 65, 4}, 65))
    32  	asserts.True(ContainsUint([]uint{65}, 65))
    33  	asserts.False(ContainsUint([]uint{65}, 6))
    34  }
    35  
    36  func TestContainsString(t *testing.T) {
    37  	asserts := assert.New(t)
    38  	asserts.True(ContainsString([]string{"", "1"}, ""))
    39  	asserts.True(ContainsString([]string{"", "1"}, "1"))
    40  	asserts.False(ContainsString([]string{"", "1"}, " "))
    41  }
    42  
    43  func TestReplace(t *testing.T) {
    44  	asserts := assert.New(t)
    45  
    46  	asserts.Equal("origin", Replace(map[string]string{
    47  		"123": "321",
    48  	}, "origin"))
    49  
    50  	asserts.Equal("321origin321", Replace(map[string]string{
    51  		"123": "321",
    52  	}, "123origin123"))
    53  	asserts.Equal("321new321", Replace(map[string]string{
    54  		"123":    "321",
    55  		"origin": "new",
    56  	}, "123origin123"))
    57  }
    58  
    59  func TestBuildRegexp(t *testing.T) {
    60  	asserts := assert.New(t)
    61  
    62  	asserts.Equal("^/dir/", BuildRegexp([]string{"/dir"}, "^", "/", "|"))
    63  	asserts.Equal("^/dir/|^/dir/di\\*r/", BuildRegexp([]string{"/dir", "/dir/di*r"}, "^", "/", "|"))
    64  }
    65  
    66  func TestBuildConcat(t *testing.T) {
    67  	asserts := assert.New(t)
    68  	asserts.Equal("CONCAT(1,2)", BuildConcat("1", "2", "mysql"))
    69  	asserts.Equal("1||2", BuildConcat("1", "2", "sqlite"))
    70  }
    71  
    72  func TestSliceDifference(t *testing.T) {
    73  	asserts := assert.New(t)
    74  
    75  	{
    76  		s1 := []string{"1", "2", "3", "4"}
    77  		s2 := []string{"2", "4"}
    78  		asserts.Equal([]string{"1", "3"}, SliceDifference(s1, s2))
    79  	}
    80  
    81  	{
    82  		s2 := []string{"1", "2", "3", "4"}
    83  		s1 := []string{"2", "4"}
    84  		asserts.Equal([]string{}, SliceDifference(s1, s2))
    85  	}
    86  
    87  	{
    88  		s1 := []string{"1", "2", "3", "4"}
    89  		s2 := []string{"1", "2", "3", "4"}
    90  		asserts.Equal([]string{}, SliceDifference(s1, s2))
    91  	}
    92  
    93  	{
    94  		s1 := []string{"1", "2", "3", "4"}
    95  		s2 := []string{}
    96  		asserts.Equal([]string{"1", "2", "3", "4"}, SliceDifference(s1, s2))
    97  	}
    98  }