github.com/MetalBlockchain/metalgo@v1.11.9/utils/constants/network_ids_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 constants
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestGetHRP(t *testing.T) {
    13  	tests := []struct {
    14  		id  uint32
    15  		hrp string
    16  	}{
    17  		{
    18  			id:  MainnetID,
    19  			hrp: MainnetHRP,
    20  		},
    21  		{
    22  			id:  TahoeID,
    23  			hrp: TahoeHRP,
    24  		},
    25  		{
    26  			id:  LocalID,
    27  			hrp: LocalHRP,
    28  		},
    29  		{
    30  			id:  4294967295,
    31  			hrp: FallbackHRP,
    32  		},
    33  	}
    34  	for _, test := range tests {
    35  		t.Run(test.hrp, func(t *testing.T) {
    36  			require.Equal(t, test.hrp, GetHRP(test.id))
    37  		})
    38  	}
    39  }
    40  
    41  func TestNetworkName(t *testing.T) {
    42  	tests := []struct {
    43  		id   uint32
    44  		name string
    45  	}{
    46  		{
    47  			id:   MainnetID,
    48  			name: MainnetName,
    49  		},
    50  		{
    51  			id:   TahoeID,
    52  			name: TahoeHRP,
    53  		},
    54  		{
    55  			id:   LocalID,
    56  			name: LocalName,
    57  		},
    58  		{
    59  			id:   4294967295,
    60  			name: "network-4294967295",
    61  		},
    62  	}
    63  	for _, test := range tests {
    64  		t.Run(test.name, func(t *testing.T) {
    65  			require.Equal(t, test.name, NetworkName(test.id))
    66  		})
    67  	}
    68  }
    69  
    70  func TestNetworkID(t *testing.T) {
    71  	tests := []struct {
    72  		name        string
    73  		id          uint32
    74  		expectedErr error
    75  	}{
    76  		{
    77  			name: MainnetName,
    78  			id:   MainnetID,
    79  		},
    80  		{
    81  			name: "MaInNeT",
    82  			id:   MainnetID,
    83  		},
    84  		{
    85  			name: TahoeName,
    86  			id:   TahoeID,
    87  		},
    88  		{
    89  			name: LocalName,
    90  			id:   LocalID,
    91  		},
    92  		{
    93  			name: "network-4294967295",
    94  			id:   4294967295,
    95  		},
    96  		{
    97  			name: "4294967295",
    98  			id:   4294967295,
    99  		},
   100  		{
   101  			name:        "networ-4294967295",
   102  			expectedErr: ErrParseNetworkName,
   103  		},
   104  		{
   105  			name:        "network-4294967295123123",
   106  			expectedErr: ErrParseNetworkName,
   107  		},
   108  		{
   109  			name:        "4294967295123123",
   110  			expectedErr: ErrParseNetworkName,
   111  		},
   112  	}
   113  	for _, test := range tests {
   114  		t.Run(test.name, func(t *testing.T) {
   115  			require := require.New(t)
   116  
   117  			id, err := NetworkID(test.name)
   118  			require.ErrorIs(err, test.expectedErr)
   119  			require.Equal(test.id, id)
   120  		})
   121  	}
   122  }