git.frostfs.info/TrueCloudLab/frostfs-sdk-go@v0.0.0-20241022124111-5361f0ecebd3/object/id/address_test.go (about) 1 package oid_test 2 3 import ( 4 "testing" 5 6 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs" 7 cidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id/test" 8 oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" 9 oidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id/test" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestAddress_SetContainer(t *testing.T) { 14 var x oid.Address 15 16 require.Zero(t, x.Container()) 17 18 cnr := cidtest.ID() 19 20 x.SetContainer(cnr) 21 require.Equal(t, cnr, x.Container()) 22 } 23 24 func TestAddress_SetObject(t *testing.T) { 25 var x oid.Address 26 27 require.Zero(t, x.Object()) 28 29 obj := oidtest.ID() 30 31 x.SetObject(obj) 32 require.Equal(t, obj, x.Object()) 33 } 34 35 func TestAddress_ReadFromV2(t *testing.T) { 36 var x oid.Address 37 var xV2 refs.Address 38 39 require.Error(t, x.ReadFromV2(xV2)) 40 41 var cnrV2 refs.ContainerID 42 xV2.SetContainerID(&cnrV2) 43 44 require.Error(t, x.ReadFromV2(xV2)) 45 46 cnr := cidtest.ID() 47 cnr.WriteToV2(&cnrV2) 48 49 require.Error(t, x.ReadFromV2(xV2)) 50 51 var objV2 refs.ObjectID 52 xV2.SetObjectID(&objV2) 53 54 require.Error(t, x.ReadFromV2(xV2)) 55 56 obj := oidtest.ID() 57 obj.WriteToV2(&objV2) 58 59 require.NoError(t, x.ReadFromV2(xV2)) 60 require.Equal(t, cnr, x.Container()) 61 require.Equal(t, obj, x.Object()) 62 63 var xV2To refs.Address 64 x.WriteToV2(&xV2To) 65 66 require.Equal(t, xV2, xV2To) 67 } 68 69 func TestAddress_DecodeString(t *testing.T) { 70 var x, x2 oid.Address 71 72 require.NoError(t, x2.DecodeString(x.EncodeToString())) 73 require.Equal(t, x, x2) 74 75 cnr := cidtest.ID() 76 obj := oidtest.ID() 77 78 x.SetContainer(cnr) 79 x.SetObject(obj) 80 81 require.NoError(t, x2.DecodeString(x.EncodeToString())) 82 require.Equal(t, x, x2) 83 84 strCnr := cnr.EncodeToString() 85 strObj := obj.EncodeToString() 86 87 require.Error(t, x2.DecodeString("")) 88 require.Error(t, x2.DecodeString("/")) 89 require.Error(t, x2.DecodeString(strCnr)) 90 require.Error(t, x2.DecodeString(strCnr+"/")) 91 require.Error(t, x2.DecodeString("/"+strCnr)) 92 require.Error(t, x2.DecodeString(strCnr+strObj)) 93 require.Error(t, x2.DecodeString(strCnr+"\\"+strObj)) 94 require.NoError(t, x2.DecodeString(strCnr+"/"+strObj)) 95 } 96 97 func TestAddressEncoding(t *testing.T) { 98 v := oidtest.Address() 99 100 t.Run("json", func(t *testing.T) { 101 data, err := v.MarshalJSON() 102 require.NoError(t, err) 103 104 var v2 oid.Address 105 require.NoError(t, v2.UnmarshalJSON(data)) 106 107 require.Equal(t, v, v2) 108 }) 109 }