2024-05-17 18:30:33 +08:00
|
|
|
// Copyright 2021 GoEdge goedge.cdn@gmail.com. All rights reserved.
|
2021-07-18 15:51:49 +08:00
|
|
|
|
2024-04-07 14:31:22 +08:00
|
|
|
package utils_test
|
2021-07-18 15:51:49 +08:00
|
|
|
|
|
|
|
|
import (
|
2024-04-07 14:31:22 +08:00
|
|
|
"github.com/TeaOSLab/EdgeNode/internal/utils"
|
|
|
|
|
"github.com/iwind/TeaGo/assert"
|
2021-07-18 15:51:49 +08:00
|
|
|
"github.com/iwind/TeaGo/maps"
|
|
|
|
|
"sync"
|
|
|
|
|
"testing"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestSimpleEncrypt(t *testing.T) {
|
2024-04-07 14:31:22 +08:00
|
|
|
var a = assert.NewAssertion(t)
|
|
|
|
|
|
2021-07-18 15:51:49 +08:00
|
|
|
var arr = []string{"Hello", "World", "People"}
|
|
|
|
|
for _, s := range arr {
|
|
|
|
|
var value = []byte(s)
|
2024-04-07 14:31:22 +08:00
|
|
|
var encoded = utils.SimpleEncrypt(value)
|
2021-07-18 15:51:49 +08:00
|
|
|
t.Log(encoded, string(encoded))
|
2024-04-07 14:31:22 +08:00
|
|
|
var decoded = utils.SimpleDecrypt(encoded)
|
2021-07-18 15:51:49 +08:00
|
|
|
t.Log(decoded, string(decoded))
|
2024-04-07 14:31:22 +08:00
|
|
|
a.IsTrue(s == string(decoded))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestSimpleEncryptObject(t *testing.T) {
|
|
|
|
|
var a = assert.NewAssertion(t)
|
|
|
|
|
|
|
|
|
|
type Obj struct {
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
Age int `json:"age"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
encoded, err := utils.SimpleEncryptObject(&Obj{Name: "lily", Age: 20})
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var obj = &Obj{}
|
|
|
|
|
err = utils.SimpleDecryptObjet(encoded, obj)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
2021-07-18 15:51:49 +08:00
|
|
|
}
|
2024-04-07 14:31:22 +08:00
|
|
|
t.Logf("%#v", obj)
|
|
|
|
|
a.IsTrue(obj.Name == "lily")
|
|
|
|
|
a.IsTrue(obj.Age == 20)
|
2021-07-18 15:51:49 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestSimpleEncrypt_Concurrent(t *testing.T) {
|
2024-04-07 14:31:22 +08:00
|
|
|
var wg = sync.WaitGroup{}
|
2021-07-18 15:51:49 +08:00
|
|
|
var arr = []string{"Hello", "World", "People"}
|
|
|
|
|
wg.Add(len(arr))
|
|
|
|
|
for _, s := range arr {
|
|
|
|
|
go func(s string) {
|
|
|
|
|
defer wg.Done()
|
2024-04-07 14:31:22 +08:00
|
|
|
t.Log(string(utils.SimpleDecrypt(utils.SimpleEncrypt([]byte(s)))))
|
2021-07-18 15:51:49 +08:00
|
|
|
}(s)
|
|
|
|
|
}
|
|
|
|
|
wg.Wait()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestSimpleEncryptMap(t *testing.T) {
|
|
|
|
|
var m = maps.Map{
|
|
|
|
|
"s": "Hello",
|
|
|
|
|
"i": 20,
|
|
|
|
|
"b": true,
|
|
|
|
|
}
|
2024-04-07 14:31:22 +08:00
|
|
|
encodedResult, err := utils.SimpleEncryptMap(m)
|
2021-07-18 15:51:49 +08:00
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
t.Log("result:", encodedResult)
|
|
|
|
|
|
2024-04-07 14:31:22 +08:00
|
|
|
decodedResult, err := utils.SimpleDecryptMap(encodedResult)
|
2021-07-18 15:51:49 +08:00
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
t.Log(decodedResult)
|
|
|
|
|
}
|