59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package cruda_test
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"git.solsynth.dev/hypernet/nexus/pkg/nex"
 | |
| 	"git.solsynth.dev/hypernet/nexus/pkg/nex/cruda"
 | |
| 	"git.solsynth.dev/hypernet/nexus/pkg/proto"
 | |
| 	"testing"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| type Test struct {
 | |
| 	cruda.BaseModel
 | |
| 	Content string `json:"content" validate:"required"`
 | |
| }
 | |
| 
 | |
| func TestCrudaCommand(t *testing.T) {
 | |
| 	conn, err := nex.NewNexusConn("127.0.0.1:7001", &proto.ServiceInfo{
 | |
| 		Id:       "cruda01",
 | |
| 		Type:     "cruda",
 | |
| 		Label:    "CRUD Accelerator",
 | |
| 		GrpcAddr: "127.0.0.1:6001",
 | |
| 		HttpAddr: nil,
 | |
| 	})
 | |
| 	if err != nil {
 | |
| 		t.Fatal(fmt.Errorf("unable to connect nexus: %v", err))
 | |
| 	}
 | |
| 
 | |
| 	if err := conn.RegisterService(); err != nil {
 | |
| 		t.Fatal(fmt.Errorf("unable to register service: %v", err))
 | |
| 	}
 | |
| 
 | |
| 	cc := cruda.NewCrudaConn(conn)
 | |
| 	dsn, err := cc.AllocDatabase("test")
 | |
| 	if err != nil {
 | |
| 		t.Fatal(fmt.Errorf("unable to allocate database: %v", err))
 | |
| 	}
 | |
| 	t.Log(fmt.Sprintf("Allocated database: %s", dsn))
 | |
| 
 | |
| 	if err := cruda.MigrateModel(cc, Test{}); err != nil {
 | |
| 		t.Fatal(fmt.Errorf("unable to migrate database: %v", err))
 | |
| 	}
 | |
| 
 | |
| 	if err := cruda.AddModel(cc, Test{}, "tm", "test.", nil); err != nil {
 | |
| 		t.Fatal(fmt.Errorf("unable to add commands: %v", err))
 | |
| 	}
 | |
| 
 | |
| 	go func() {
 | |
| 		err := conn.RunCommands("0.0.0.0:6001")
 | |
| 		if err != nil {
 | |
| 			t.Error(fmt.Errorf("unable to run commands: %v", err))
 | |
| 			return
 | |
| 		}
 | |
| 	}()
 | |
| 
 | |
| 	t.Log("Waiting 180 seconds for calling command...")
 | |
| 	time.Sleep(time.Second * 180)
 | |
| }
 |