Skip to content

Commit

Permalink
CM-254 keeper rename done
Browse files Browse the repository at this point in the history
  • Loading branch information
rnistuk committed Mar 4, 2020
1 parent df4a0e0 commit cff25f1
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 24 deletions.
17 changes: 17 additions & 0 deletions x/crud/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,5 +146,22 @@ func handleMsgBLZHas(ctx sdk.Context, keeper keeper.IKeeper, msg types.MsgBLZHas
}

func handleMsgBLZRename(ctx sdk.Context, keeper keeper.IKeeper, msg types.MsgBLZRename) sdk.Result {
if len(msg.UUID) == 0 || len(msg.Key) == 0 || len(msg.NewKey) ==0 || msg.Owner.Empty() {
return sdk.ErrInternal("Invalid message").Result()
}

owner := keeper.GetOwner(ctx, keeper.GetKVStore(ctx), msg.UUID, msg.Key)
if owner.Empty() {
return sdk.ErrInternal("Key does not exist").Result()
}

if !msg.Owner.Equals(owner) {
return sdk.ErrUnauthorized("Incorrect Owner").Result()
}

if !keeper.RenameBLZKey(ctx, keeper.GetKVStore(ctx), msg.UUID, msg.Key, msg.NewKey) {
return sdk.ErrInternal("Rename failed").Result()
}

return sdk.Result{}
}
39 changes: 19 additions & 20 deletions x/crud/handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -331,57 +331,56 @@ func Test_handleMsgBLZRename(t *testing.T) {
// check for new key size
// ensure the owners match
//
/*
mockCtrl, mockKeeper, ctx, owner := initTest(t)
defer mockCtrl.Finish()

// Simple Rename test
{
renameMsg := types.MsgBLZRename{
UUID: "uuid",
Key: "key",
NewKey: "newkey",
Owner: owner,
UUID: "uuid",
Key: "key",
NewKey: "newkey",
Owner: owner,
}
assert.Equal(t, renameMsg.Type(), "rename")

// always return nil for a store...
mockKeeper.EXPECT().GetKVStore(ctx).AnyTimes().Return(nil)
mockKeeper.EXPECT().GetOwner(ctx, nil, renameMsg.UUID, renameMsg.Key).Return(owner)
mockKeeper.EXPECT().SetBLZValue(ctx, nil, renameMsg.UUID, renameMsg.Key, types.BLZValue{
Value: "value",
Owner: owner,
})
mockKeeper.EXPECT().RenameBLZKey(ctx, gomock.Any(), renameMsg.UUID, renameMsg.Key, renameMsg.NewKey).Return(true)

result := NewHandler(mockKeeper)(ctx, renameMsg)
assert.True(t, result.IsOK())

mockKeeper.EXPECT().GetOwner(ctx, nil, renameMsg.UUID, renameMsg.Key).Return(owner)
renameMsg.Owner = []byte("bluzelle1nnpyp9wr6law2u5jwa23t0ywtmrduldf6h4wqr")
result = handleMsgBLZRename(ctx, mockKeeper, renameMsg)
assert.False(t, result.IsOK())

mockKeeper.EXPECT().GetOwner(ctx, nil, renameMsg.UUID, renameMsg.Key)
result = handleMsgBLZRename(ctx, mockKeeper, renameMsg)
assert.False(t, result.IsOK())

// Rename failed
mockKeeper.EXPECT().GetKVStore(ctx).AnyTimes().Return(nil)
mockKeeper.EXPECT().GetOwner(ctx, nil, renameMsg.UUID, renameMsg.Key).Return(renameMsg.Owner)
mockKeeper.EXPECT().RenameBLZKey(ctx, gomock.Any(), renameMsg.UUID, renameMsg.Key, renameMsg.NewKey).Return(false)

mockKeeper.EXPECT().GetOwner(ctx, nil, updateMsg.UUID, updateMsg.Key).Return(owner)
updateMsg.Owner = []byte("bluzelle1nnpyp9wr6law2u5jwa23t0ywtmrduldf6h4wqr")
result = handleMsgBLZUpdate(ctx, mockKeeper, updateMsg)
result = NewHandler(mockKeeper)(ctx, renameMsg)
assert.False(t, result.IsOK())
assert.Equal(t, "{\"codespace\":\"sdk\",\"code\":1,\"message\":\"Rename failed\"}", result.Log)
}

// Test for empty message parameters
{

result := handleMsgBLZUpdate(ctx, mockKeeper, types.MsgBLZUpdate{})
result := handleMsgBLZRename(ctx, mockKeeper, types.MsgBLZRename{})
assert.False(t, result.IsOK())

result = handleMsgBLZUpdate(ctx, mockKeeper, types.MsgBLZUpdate{UUID: "uuid"})
result = handleMsgBLZRename(ctx, mockKeeper, types.MsgBLZRename{UUID: "uuid", Key: "key"})
assert.False(t, result.IsOK())

result = handleMsgBLZUpdate(ctx, mockKeeper, types.MsgBLZUpdate{UUID: "uuid", Key: "key"})
result = handleMsgBLZRename(ctx, mockKeeper, types.MsgBLZRename{UUID: "uuid", Key: "key", NewKey: "newkey"})
assert.False(t, result.IsOK())
}
*/
}
4 changes: 0 additions & 4 deletions x/crud/internal/keeper/keeper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,4 @@ func TestKeeper_RenameBLZKey(t *testing.T) {
Value: "a value",
Owner: owner,
}))




}
4 changes: 4 additions & 0 deletions x/crud/internal/types/msgs.go
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,10 @@ func (msg MsgBLZRename) ValidateBasic() sdk.Error {
return sdk.ErrInvalidPubKey("new key empty")
}

if len(msg.UUID)+len(msg.NewKey) > MaxKeySize {
return sdk.ErrInternal("UUID+NewKey too large")
}

return nil
}

Expand Down
4 changes: 4 additions & 0 deletions x/crud/internal/types/msgs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,10 @@ func TestMsgBLZRename_ValidateBasic(t *testing.T) {
sut.Key = "key"
sut.NewKey = ""
assert.Equal(t, sdk.ErrInvalidPubKey("new key empty"), sut.ValidateBasic())

sut.Key = "Key"
sut.NewKey = string(make([]byte, MaxKeySize+1))
assert.Equal(t, sdk.ErrInternal("UUID+NewKey too large"), sut.ValidateBasic())
}

func TestMsgBLZRename_GetSignBytes(t *testing.T) {
Expand Down

0 comments on commit cff25f1

Please sign in to comment.