to_entangle/toentangle._test.go

62 lines
1.2 KiB
Go
Raw Permalink Normal View History

2023-06-24 02:31:03 +08:00
package toentangle
import (
"fmt"
"os"
"testing"
)
func TestToEntangle_Get(t *testing.T) {
// 创建一个 ToEntangle
2023-06-24 03:52:02 +08:00
toentangle := NewToEntangle("data")
2023-06-24 02:31:03 +08:00
// 添加一对数据, 使其双向绑定
2023-06-24 03:52:02 +08:00
toentangle.Add("a", "b")
toentangle.Add("a", "c")
2023-06-24 02:31:03 +08:00
// 获取 a 的全部绑定数据
2023-06-24 03:52:02 +08:00
arr, _ := toentangle.GetA("a")
2023-06-24 02:31:03 +08:00
fmt.Println(arr)
2023-06-24 02:39:05 +08:00
if len(arr) != 2 {
2023-06-24 03:52:02 +08:00
t.Errorf("GetA(\"a\") = %v; want [\"b\", \"c\"]", arr)
2023-06-24 02:31:03 +08:00
}
// 获取 b 的全部绑定数据
2023-06-24 03:52:02 +08:00
arr, _ = toentangle.GetB("b")
2023-06-24 02:31:03 +08:00
fmt.Println(arr)
if len(arr) != 1 || arr[0] != "a" {
2023-06-24 03:52:02 +08:00
t.Errorf("GetB(\"b\") = %v; want [\"a\"]", arr)
2023-06-24 02:31:03 +08:00
}
// 获取 c 的全部绑定数据
2023-06-24 03:52:02 +08:00
arr, _ = toentangle.GetB("c")
2023-06-24 02:31:03 +08:00
fmt.Println(arr)
if len(arr) != 1 || arr[0] != "a" {
2023-06-24 03:52:02 +08:00
t.Errorf("GetB(\"c\") = %v; want [\"a\"]", arr)
2023-06-24 02:31:03 +08:00
}
2023-06-24 02:39:05 +08:00
// 移除所有绑定
2023-06-24 03:52:02 +08:00
toentangle.Remove("a", "b")
toentangle.Remove("a", "c")
2023-06-24 02:39:05 +08:00
// 获取 a 的全部绑定数据
2023-06-24 03:52:02 +08:00
arr, _ = toentangle.GetA("a")
2023-06-24 02:39:05 +08:00
fmt.Println(arr)
if len(arr) != 0 {
2023-06-24 03:52:02 +08:00
t.Errorf("GetA(\"a\") = %v; want []", arr)
2023-06-24 02:39:05 +08:00
}
// 获取 s 的全部绑定数据
2023-06-24 03:52:02 +08:00
arr, _ = toentangle.GetB("s")
2023-06-24 02:39:05 +08:00
fmt.Println(arr)
if len(arr) != 0 {
2023-06-24 03:52:02 +08:00
t.Errorf("GetB(\"s\") = %v; want []", arr)
2023-06-24 02:39:05 +08:00
}
2023-06-24 02:31:03 +08:00
// 清理 leveldb
2023-06-24 03:52:02 +08:00
toentangle.Close()
2023-06-24 02:31:03 +08:00
// 删除 data 文件夹
os.RemoveAll("data")
}