axonhub / internal /objects /GUID_test.go
llzai's picture
Upload 1793 files
9853396 verified
package objects
import (
"bytes"
"testing"
)
func TestGUID_MarshalGQL(t *testing.T) {
type fields struct {
Type string
UUID int
}
tests := []struct {
name string
fields fields
wantW string
}{
{
name: "gid",
fields: fields{
Type: "type",
UUID: 1,
},
wantW: `"gid://axonhub/type/1"`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
guid := GUID{
Type: tt.fields.Type,
ID: tt.fields.UUID,
}
w := &bytes.Buffer{}
guid.MarshalGQL(w)
if gotW := w.String(); gotW != tt.wantW {
t.Errorf("GUID.MarshalGQL() = %v, want %v", gotW, tt.wantW)
}
})
}
}
func TestGUID_UnmarshalGQL(t *testing.T) {
type fields struct {
Type string
ID int
}
type args struct {
v any
}
tests := []struct {
name string
fields fields
args args
wantErr bool
}{
{
name: "gid",
fields: fields{
Type: "type",
ID: 1,
},
args: args{
v: "gid://axonhub/type/1",
},
},
{
name: "empty",
fields: fields{
Type: "",
ID: 0,
},
args: args{
v: "",
},
wantErr: true,
},
{
name: "invalid",
fields: fields{
Type: "type",
ID: 0,
},
args: args{
v: "gid://axonhub/type/invalid",
},
wantErr: true,
},
{
name: "invalid prefix",
fields: fields{
Type: "type",
ID: 0,
},
args: args{
v: "guid://invalid/1",
},
wantErr: true,
},
{
name: "old format should fail",
fields: fields{
Type: "type",
ID: 0,
},
args: args{
v: "gid://type/1",
},
wantErr: true,
},
{
name: "missing axonhub namespace",
fields: fields{
Type: "type",
ID: 0,
},
args: args{
v: "gid://other/type/1",
},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
guid := &GUID{
Type: tt.fields.Type,
ID: tt.fields.ID,
}
err := guid.UnmarshalGQL(tt.args.v)
if (err != nil) != tt.wantErr {
t.Errorf("GUID.UnmarshalGQL() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}