Skip to content

Commit

Permalink
chore: add more test cases for cross chain apps
Browse files Browse the repository at this point in the history
  • Loading branch information
yutianwu committed Jul 28, 2023
1 parent 186de54 commit 1a01e8e
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 6 deletions.
49 changes: 43 additions & 6 deletions x/storage/keeper/cross_app_bucket_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,6 @@ import (
)

func (s *TestSuite) TestSynDeleteBucket() {
pack := types.DeleteBucketAckPackage{
Status: 1,
Id: big.NewInt(10),
ExtraData: []byte("x"),
}
pack.MustSerialize()
ctrl := gomock.NewController(s.T())
storageKeeper := types.NewMockStorageKeeper(ctrl)
storageKeeper.EXPECT().Logger(gomock.Any()).Return(s.ctx.Logger()).AnyTimes()
Expand Down Expand Up @@ -55,3 +49,46 @@ func (s *TestSuite) TestSynDeleteBucket() {
res = app.ExecuteSynPackage(s.ctx, nil, serializedSynPackage)
s.Require().NoError(res.Err)
}

func (s *TestSuite) TestSynCreateBucket() {
ctrl := gomock.NewController(s.T())
storageKeeper := types.NewMockStorageKeeper(ctrl)
storageKeeper.EXPECT().Logger(gomock.Any()).Return(s.ctx.Logger()).AnyTimes()

app := keeper.NewBucketApp(storageKeeper)
createSynPackage := types.CreateBucketSynPackage{
Creator: sample.RandAccAddress(),
BucketName: "bucketname",
ExtraData: []byte("extra data"),
PaymentAddress: sample.RandAccAddress(),
PrimarySpAddress: sample.RandAccAddress(),
}
serializedSynPackage := createSynPackage.MustSerialize()
serializedSynPackage = append([]byte{types.OperationCreateBucket}, serializedSynPackage...)

// case 1: invalid package
res := app.ExecuteSynPackage(s.ctx, nil, serializedSynPackage)
s.Require().ErrorContains(res.Err, "Invalid type of visibility")

// case 2: create bucket error
createSynPackage.Visibility = uint32(types.VISIBILITY_TYPE_PUBLIC_READ)
serializedSynPackage = createSynPackage.MustSerialize()
serializedSynPackage = append([]byte{types.OperationCreateBucket}, serializedSynPackage...)

storageKeeper.EXPECT().CreateBucket(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(sdk.NewUint(1), fmt.Errorf("create error"))
res = app.ExecuteSynPackage(s.ctx, nil, serializedSynPackage)
s.Require().ErrorContains(res.Err, "create error")

// case 3: create bucket success
createSynPackage.Visibility = uint32(types.VISIBILITY_TYPE_PUBLIC_READ)
serializedSynPackage = createSynPackage.MustSerialize()
serializedSynPackage = append([]byte{types.OperationCreateBucket}, serializedSynPackage...)

storageKeeper.EXPECT().CreateBucket(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(sdk.NewUint(1), nil)
res = app.ExecuteSynPackage(s.ctx, nil, serializedSynPackage)
s.Require().NoError(res.Err)
}

func (s *TestSuite) TestAckMirrorBucket() {

}
18 changes: 18 additions & 0 deletions x/storage/types/crosschain.go
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,24 @@ var (
}
)

func (p CreateBucketSynPackage) MustSerialize() []byte {
encodedBytes, err := createBucketSynPackageStructArgs.Pack(&CreateBucketSynPackageStruct{
Creator: common.BytesToAddress(p.Creator),
BucketName: p.BucketName,
Visibility: p.Visibility,
PaymentAddress: common.BytesToAddress(p.PaymentAddress),
PrimarySpAddress: common.BytesToAddress(p.PrimarySpAddress),
PrimarySpApprovalExpiredHeight: p.PrimarySpApprovalExpiredHeight,
PrimarySpApprovalSignature: p.PrimarySpApprovalSignature,
ChargedReadQuota: p.ChargedReadQuota,
ExtraData: p.ExtraData,
})
if err != nil {
panic("encode create bucket syn package error")
}
return encodedBytes
}

func (p CreateBucketSynPackage) ValidateBasic() error {
msg := MsgCreateBucket{
Creator: p.Creator.String(),
Expand Down

0 comments on commit 1a01e8e

Please sign in to comment.