github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/common/proto/keeper_test.go (about)

     1  package proto
     2  
     3  import (
     4  	"testing"
     5  
     6  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestAppUpgradeConfig_String(t *testing.T) {
    11  	appUpgradeConfig := NewAppUpgradeConfig(1, NewProtocolDefinition(1, "http://web.abc", 100, sdk.NewDecWithPrec(75, 2)))
    12  	require.NotEqual(t, len(appUpgradeConfig.String()), 0)
    13  }
    14  
    15  func TestDefaultUpgradeConfig(t *testing.T) {
    16  	ctx, keeper := createTestInput(t)
    17  	appUpgradeConfig := DefaultUpgradeConfig("http://web.abc")
    18  	require.NotPanics(t, func() { keeper.SetUpgradeConfig(ctx, appUpgradeConfig) })
    19  
    20  	_, found := keeper.GetUpgradeConfig(ctx)
    21  	require.True(t, found)
    22  
    23  	require.NotPanics(t, func() { keeper.ClearUpgradeConfig(ctx) })
    24  	_, found = keeper.GetUpgradeConfig(ctx)
    25  	require.False(t, found)
    26  }
    27  
    28  func TestCurrentVersion(t *testing.T) {
    29  	ctx, keeper := createTestInput(t)
    30  
    31  	require.Equal(t, keeper.GetCurrentVersion(ctx), uint64(0))
    32  
    33  	require.NotPanics(t, func() { keeper.SetCurrentVersion(ctx, 1) })
    34  	require.Equal(t, keeper.GetCurrentVersion(ctx), uint64(1))
    35  }
    36  
    37  func TestLastFailedVersion(t *testing.T) {
    38  	ctx, keeper := createTestInput(t)
    39  
    40  	require.Equal(t, keeper.GetLastFailedVersion(ctx), uint64(0))
    41  
    42  	require.NotPanics(t, func() { keeper.SetLastFailedVersion(ctx, 1) })
    43  	require.Equal(t, keeper.GetLastFailedVersion(ctx), uint64(1))
    44  }
    45  
    46  func TestValidVersion(t *testing.T) {
    47  	ctx, keeper := createTestInput(t)
    48  
    49  	require.True(t, keeper.IsValidVersion(ctx, 1))
    50  
    51  	require.NotPanics(t, func() { keeper.SetLastFailedVersion(ctx, 1) })
    52  	require.True(t, keeper.IsValidVersion(ctx, 2))
    53  }
    54  
    55  func TestVersionByStore(t *testing.T) {
    56  	ctx, keeper := createTestInput(t)
    57  
    58  	store := ctx.KVStore(keeper.storeKey)
    59  
    60  	require.Equal(t, keeper.GetCurrentVersionByStore(store), uint64(0))
    61  
    62  	require.NotPanics(t, func() { keeper.SetCurrentVersion(ctx, 1) })
    63  	require.Equal(t, keeper.GetCurrentVersionByStore(store), uint64(1))
    64  }
    65  
    66  func TestUpgradeConfigByStore(t *testing.T) {
    67  	ctx, keeper := createTestInput(t)
    68  
    69  	store := ctx.KVStore(keeper.storeKey)
    70  
    71  	_, found := keeper.GetUpgradeConfigByStore(store)
    72  	require.False(t, found)
    73  
    74  	appUpgradeConfig := DefaultUpgradeConfig("http://web.abc")
    75  	require.NotPanics(t, func() { keeper.SetUpgradeConfig(ctx, appUpgradeConfig) })
    76  	_, found = keeper.GetUpgradeConfigByStore(store)
    77  	require.True(t, found)
    78  }