mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-26 21:22:16 +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)
 | |
| }
 |