github.com/MetalBlockchain/metalgo@v1.11.9/utils/compression/type_test.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package compression 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestTypeString(t *testing.T) { 13 require := require.New(t) 14 15 for _, compressionType := range []Type{TypeNone, TypeZstd} { 16 s := compressionType.String() 17 parsedType, err := TypeFromString(s) 18 require.NoError(err) 19 require.Equal(compressionType, parsedType) 20 } 21 22 _, err := TypeFromString("unknown") 23 require.ErrorIs(err, errUnknownCompressionType) 24 } 25 26 func TestTypeMarshalJSON(t *testing.T) { 27 type test struct { 28 Type Type 29 expected string 30 } 31 32 tests := []test{ 33 { 34 Type: TypeNone, 35 expected: `"none"`, 36 }, 37 { 38 Type: TypeZstd, 39 expected: `"zstd"`, 40 }, 41 { 42 Type: Type(0), 43 expected: `"unknown"`, 44 }, 45 } 46 47 for _, tt := range tests { 48 t.Run(tt.Type.String(), func(t *testing.T) { 49 require := require.New(t) 50 51 b, err := tt.Type.MarshalJSON() 52 require.NoError(err) 53 require.Equal(tt.expected, string(b)) 54 }) 55 } 56 }