mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-04 19:32:17 +08:00 
			
		
		
		
	* refactor: cmd update. * refactor: msg transfer refactor. * refactor: msg transfer refactor. * refactor: msg transfer refactor. * fix: read prometheus port when flag set to enable and prevent failure during startup. * fix: notification has counted unread counts bug fix. * fix: merge opensource code into local. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * refactor: delete message and message batch use lua. * fix: add protective measures against memory overflow.
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package redis
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"github.com/go-redis/redismock/v9"
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
	"github.com/stretchr/testify/require"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func TestLuaSetBatchWithCommonExpire(t *testing.T) {
 | 
						|
	rdb, mock := redismock.NewClientMock()
 | 
						|
	ctx := context.Background()
 | 
						|
 | 
						|
	keys := []string{"key1", "key2"}
 | 
						|
	values := []string{"value1", "value2"}
 | 
						|
	expire := 10
 | 
						|
 | 
						|
	mock.ExpectEvalSha(setBatchWithCommonExpireScript.Hash(), keys, []any{expire, "value1", "value2"}).SetVal(int64(len(keys)))
 | 
						|
 | 
						|
	err := LuaSetBatchWithCommonExpire(ctx, rdb, keys, values, expire)
 | 
						|
	require.NoError(t, err)
 | 
						|
	assert.NoError(t, mock.ExpectationsWereMet())
 | 
						|
}
 | 
						|
 | 
						|
func TestLuaSetBatchWithIndividualExpire(t *testing.T) {
 | 
						|
	rdb, mock := redismock.NewClientMock()
 | 
						|
	ctx := context.Background()
 | 
						|
 | 
						|
	keys := []string{"key1", "key2"}
 | 
						|
	values := []string{"value1", "value2"}
 | 
						|
	expires := []int{10, 20}
 | 
						|
 | 
						|
	args := make([]any, 0, len(values)+len(expires))
 | 
						|
	for _, v := range values {
 | 
						|
		args = append(args, v)
 | 
						|
	}
 | 
						|
	for _, ex := range expires {
 | 
						|
		args = append(args, ex)
 | 
						|
	}
 | 
						|
 | 
						|
	mock.ExpectEvalSha(setBatchWithIndividualExpireScript.Hash(), keys, args).SetVal(int64(len(keys)))
 | 
						|
 | 
						|
	err := LuaSetBatchWithIndividualExpire(ctx, rdb, keys, values, expires)
 | 
						|
	require.NoError(t, err)
 | 
						|
	assert.NoError(t, mock.ExpectationsWereMet())
 | 
						|
}
 | 
						|
 | 
						|
func TestLuaDeleteBatch(t *testing.T) {
 | 
						|
	rdb, mock := redismock.NewClientMock()
 | 
						|
	ctx := context.Background()
 | 
						|
 | 
						|
	keys := []string{"key1", "key2"}
 | 
						|
 | 
						|
	mock.ExpectEvalSha(deleteBatchScript.Hash(), keys, []any{}).SetVal(int64(len(keys)))
 | 
						|
 | 
						|
	err := LuaDeleteBatch(ctx, rdb, keys)
 | 
						|
	require.NoError(t, err)
 | 
						|
	assert.NoError(t, mock.ExpectationsWereMet())
 | 
						|
}
 | 
						|
 | 
						|
func TestLuaGetBatch(t *testing.T) {
 | 
						|
	rdb, mock := redismock.NewClientMock()
 | 
						|
	ctx := context.Background()
 | 
						|
 | 
						|
	keys := []string{"key1", "key2"}
 | 
						|
	expectedValues := []any{"value1", "value2"}
 | 
						|
 | 
						|
	mock.ExpectEvalSha(getBatchScript.Hash(), keys, []any{}).SetVal(expectedValues)
 | 
						|
 | 
						|
	values, err := LuaGetBatch(ctx, rdb, keys)
 | 
						|
	require.NoError(t, err)
 | 
						|
	assert.NoError(t, mock.ExpectationsWereMet())
 | 
						|
	assert.Equal(t, expectedValues, values)
 | 
						|
}
 |