forked from TrueCloudLab/frostfs-rest-gw
[#79] Fix panic on get empty object
Signed-off-by: Denis Kirillov <denis@nspcc.ru>
This commit is contained in:
parent
e79189045e
commit
8d83320120
3 changed files with 136 additions and 17 deletions
77
handlers/objects_test.go
Normal file
77
handlers/objects_test.go
Normal file
|
@ -0,0 +1,77 @@
|
|||
package handlers
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/nspcc-dev/neofs-rest-gw/gen/restapi/operations"
|
||||
"github.com/nspcc-dev/neofs-rest-gw/internal/util"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestPrepareOffset(t *testing.T) {
|
||||
for _, tc := range []struct {
|
||||
err bool
|
||||
expectedOffset uint64
|
||||
expectedLength uint64
|
||||
params operations.GetObjectInfoParams
|
||||
objSize uint64
|
||||
}{
|
||||
{
|
||||
params: operations.GetObjectInfoParams{
|
||||
RangeLength: util.NewInteger(1),
|
||||
RangeOffset: util.NewInteger(0),
|
||||
},
|
||||
objSize: 1,
|
||||
expectedOffset: 0,
|
||||
expectedLength: 1,
|
||||
},
|
||||
{
|
||||
params: operations.GetObjectInfoParams{
|
||||
RangeLength: util.NewInteger(3),
|
||||
RangeOffset: util.NewInteger(1),
|
||||
},
|
||||
objSize: 5,
|
||||
expectedOffset: 1,
|
||||
expectedLength: 3,
|
||||
},
|
||||
{
|
||||
objSize: 1,
|
||||
expectedOffset: 0,
|
||||
expectedLength: 1,
|
||||
},
|
||||
{
|
||||
err: true,
|
||||
params: operations.GetObjectInfoParams{
|
||||
RangeLength: util.NewInteger(1),
|
||||
RangeOffset: nil,
|
||||
},
|
||||
},
|
||||
{
|
||||
err: true,
|
||||
params: operations.GetObjectInfoParams{
|
||||
RangeLength: nil,
|
||||
RangeOffset: util.NewInteger(1),
|
||||
},
|
||||
},
|
||||
{
|
||||
err: true,
|
||||
params: operations.GetObjectInfoParams{
|
||||
RangeLength: util.NewInteger(1),
|
||||
RangeOffset: util.NewInteger(0),
|
||||
},
|
||||
objSize: 0,
|
||||
},
|
||||
} {
|
||||
t.Run("", func(t *testing.T) {
|
||||
offset, length, err := prepareOffsetLength(tc.params, tc.objSize)
|
||||
if tc.err {
|
||||
require.Error(t, err)
|
||||
return
|
||||
}
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, tc.expectedOffset, offset)
|
||||
require.Equal(t, tc.expectedLength, length)
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue