forked from TrueCloudLab/frostfs-sdk-go
[#127] apistatus: Support WRONG_MAGIC_NUMBER status
Define `WrongMagicNumber` type for which encapsulates the work with incorrect network magic. Provide method to read/write the correct magic (which is a status detail in NeoFS API V2 protocol). Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
883a26d210
commit
0fb22361a3
6 changed files with 121 additions and 3 deletions
|
@ -3,6 +3,7 @@ package apistatus_test
|
|||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/nspcc-dev/neofs-api-go/v2/status"
|
||||
apistatus "github.com/nspcc-dev/neofs-sdk-go/client/status"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
@ -24,3 +25,28 @@ func TestServerInternal_Message(t *testing.T) {
|
|||
require.Equal(t, msg, res)
|
||||
require.Equal(t, msg, resv2)
|
||||
}
|
||||
|
||||
func TestWrongMagicNumber_CorrectMagic(t *testing.T) {
|
||||
const magic = 1337
|
||||
|
||||
var st apistatus.WrongMagicNumber
|
||||
|
||||
res, ok := st.CorrectMagic()
|
||||
require.Zero(t, res)
|
||||
require.Zero(t, ok)
|
||||
|
||||
st.WriteCorrectMagic(magic)
|
||||
|
||||
res, ok = st.CorrectMagic()
|
||||
require.EqualValues(t, magic, res)
|
||||
require.EqualValues(t, 1, ok)
|
||||
|
||||
// corrupt the value
|
||||
apistatus.ToStatusV2(st).IterateDetails(func(d *status.Detail) bool {
|
||||
d.SetValue([]byte{1, 2, 3}) // any slice with len != 8
|
||||
return true
|
||||
})
|
||||
|
||||
_, ok = st.CorrectMagic()
|
||||
require.EqualValues(t, -1, ok)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue