39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package stringutil
|
|
|
|
import (
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestReplaceJSONField(t *testing.T) {
|
|
// 测试替换单个字段
|
|
jsonStr := `{"tenantId": "123", "name": "test"}`
|
|
result := ReplaceJSONField("tenantId", "456", jsonStr)
|
|
expected := `{"tenantId": "456", "name": "test"}`
|
|
assert.Equal(t, expected, result)
|
|
|
|
// 测试替换多个字段
|
|
jsonStr = `{"tenantId": "123", "tenant_id": "789", "name": "test"}`
|
|
result = ReplaceJSONField("tenantId|tenant_id", "456", jsonStr)
|
|
expected = `{"tenantId": "456", "tenant_id": "456", "name": "test"}`
|
|
assert.Equal(t, expected, result)
|
|
|
|
// 测试字段不存在
|
|
jsonStr = `{"name": "test"}`
|
|
result = ReplaceJSONField("tenantId", "456", jsonStr)
|
|
expected = `{"name": "test"}`
|
|
assert.Equal(t, expected, result)
|
|
|
|
// 测试空 JSON 字符串
|
|
jsonStr = ``
|
|
result = ReplaceJSONField("tenantId", "456", jsonStr)
|
|
expected = ``
|
|
assert.Equal(t, expected, result)
|
|
|
|
// 测试空字段名
|
|
jsonStr = `{"tenantId": "123"}`
|
|
result = ReplaceJSONField("", "456", jsonStr)
|
|
expected = `{"tenantId": "123"}`
|
|
assert.Equal(t, expected, result)
|
|
}
|