| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | package svcimport (	"os"	"testing"	"golib/features/mo"	"golib/infra/ii")var (	testUser ii.User)func init() {	items, err := ii.LoadItems("_test")	if err != nil {		panic(err)	}	perms, err := ii.LoadPerms("../ii/_test/filter.json")	if err != nil {		panic(err)	}	client, err := mo.NewClient("mongodb://root:abcd1234@192.168.0.224:27017/?authSource=admin&readPreference=primary&appname=goland&directConnection=true&ssl=false")	if err != nil {		panic(err)	}	InitDefault(client, items, perms, DefaultLogger)}func init() {	b, err := os.ReadFile("../ii/_test/user.json")	var info mo.M	if err = mo.UnmarshalExtJSON(b, true, &info); err != nil {		panic(err)	}	testUser = ii.User{		Data: info,	}}func TestInsertMany(t *testing.T) {	row := mo.A{		mo.M{"name": "aaa", "age": 20, "gender": "Male", "phone": "13258006534"},		mo.M{"name": "bbb", "age": 22, "gender": "Female", "phone": "17615452069"},	}	ids, err := Svc(testUser).InsertMany("test.user", row)	if err != nil {		t.Error(err)		return	}	for _, id := range ids {		t.Log(id)	}}func TestService_DeleteMany(t *testing.T) {	err := Svc(testUser).DeleteMany("test.user", mo.D{{Key: "age", Value: mo.D{{Key: "$gte", Value: 20}}}})	if err != nil {		t.Error(err)	}}func TestInsertManyTask(t *testing.T) {	row := mo.A{		mo.M{"title": "task1", "content": "example content11", "name": "aaa"},		mo.M{"title": "task2", "content": "example content22", "name": "aaa"},		mo.M{"title": "task3", "content": "example content33", "name": "bbb"},		mo.M{"title": "task4", "content": "example content44", "name": "ccc"},	}	ids, err := Svc(testUser).InsertMany("test.task", row)	if err != nil {		t.Error(err)		return	}	for _, id := range ids {		t.Log(id)	}}func TestDeleteManyTask(t *testing.T) {	match := mo.Matcher{}	match.Regex("title", "task")	err := Svc(testUser).DeleteMany("test.task", match.Done())	if err != nil {		t.Error(err)	}}func TestFind(t *testing.T) {	docs, err := Svc(testUser).Find("test.user", mo.D{})	if err != nil {		t.Error(err)		return	}	for i, doc := range docs {		t.Log(i, doc)	}}func TestFindOne(t *testing.T) {	docs, err := Svc(testUser).FindOne("test.user", mo.D{})	if err != nil {		t.Error(err)		return	}	for i, doc := range docs {		t.Log(i, doc)	}}func TestUpdateOne(t *testing.T) {	filter := mo.Matcher{}	filter.Eq("name", "aaa")	err := Svc(testUser).UpdateOne("test.user", filter.Done(), mo.M{"name": "ddd"})	if err != nil {		t.Error(err)		return	}}
 |