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  }