git.frostfs.info/TrueCloudLab/frostfs-sdk-go@v0.0.0-20241022124111-5361f0ecebd3/ape/chain_target_test.go (about) 1 package ape_test 2 3 import ( 4 "testing" 5 6 "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/ape" 7 "github.com/stretchr/testify/require" 8 9 apeV2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape" 10 ) 11 12 var ( 13 m = map[ape.TargetType]apeV2.TargetType{ 14 ape.TargetTypeUndefined: apeV2.TargetTypeUndefined, 15 ape.TargetTypeNamespace: apeV2.TargetTypeNamespace, 16 ape.TargetTypeContainer: apeV2.TargetTypeContainer, 17 ape.TargetTypeUser: apeV2.TargetTypeUser, 18 ape.TargetTypeGroup: apeV2.TargetTypeGroup, 19 } 20 ) 21 22 func TestTargetType(t *testing.T) { 23 for typesdk, typev2 := range m { 24 t.Run("from sdk to v2 "+typev2.String(), func(t *testing.T) { 25 v2 := typesdk.ToV2() 26 require.Equal(t, v2, typev2) 27 }) 28 29 t.Run("from v2 to sdk "+typev2.String(), func(t *testing.T) { 30 var typ ape.TargetType 31 typ.FromV2(typev2) 32 require.Equal(t, typesdk, typ) 33 }) 34 } 35 } 36 37 func TestChainTarget(t *testing.T) { 38 var ( 39 typ = ape.TargetTypeNamespace 40 name = "namespaceXXYYZZ" 41 ) 42 43 t.Run("from sdk to v2", func(t *testing.T) { 44 ct := ape.ChainTarget{ 45 TargetType: typ, 46 Name: name, 47 } 48 49 v2 := ct.ToV2() 50 require.Equal(t, m[typ], v2.GetTargetType()) 51 require.Equal(t, name, v2.GetName()) 52 }) 53 54 t.Run("from v2 to sdk", func(t *testing.T) { 55 v2 := &apeV2.ChainTarget{} 56 v2.SetTargetType(m[typ]) 57 v2.SetName(name) 58 59 var ct ape.ChainTarget 60 ct.FromV2(v2) 61 62 require.Equal(t, typ, ct.TargetType) 63 require.Equal(t, name, ct.Name) 64 }) 65 }