forked from TrueCloudLab/frostfs-api-go
92 lines
1.5 KiB
Go
92 lines
1.5 KiB
Go
package session
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestCreateRequestGettersSetters(t *testing.T) {
|
|
t.Run("owner ID", func(t *testing.T) {
|
|
id := OwnerID{1, 2, 3}
|
|
m := new(CreateRequest)
|
|
|
|
m.SetOwnerID(id)
|
|
|
|
require.Equal(t, id, m.GetOwnerID())
|
|
})
|
|
|
|
t.Run("lifetime", func(t *testing.T) {
|
|
e1, e2 := uint64(3), uint64(4)
|
|
m := new(CreateRequest)
|
|
|
|
m.SetCreationEpoch(e1)
|
|
m.SetExpirationEpoch(e2)
|
|
|
|
require.Equal(t, e1, m.CreationEpoch())
|
|
require.Equal(t, e2, m.ExpirationEpoch())
|
|
})
|
|
}
|
|
|
|
func TestCreateRequest_SignedData(t *testing.T) {
|
|
var (
|
|
id = OwnerID{1, 2, 3}
|
|
e1 = uint64(1)
|
|
e2 = uint64(2)
|
|
)
|
|
|
|
// create new message
|
|
m := new(CreateRequest)
|
|
|
|
// fill the fields
|
|
m.SetOwnerID(id)
|
|
m.SetCreationEpoch(e1)
|
|
m.SetExpirationEpoch(e2)
|
|
|
|
// calculate initial signed data
|
|
d, err := m.SignedData()
|
|
require.NoError(t, err)
|
|
|
|
items := []struct {
|
|
change func()
|
|
reset func()
|
|
}{
|
|
{ // OwnerID
|
|
change: func() {
|
|
id2 := id
|
|
id2[0]++
|
|
m.SetOwnerID(id2)
|
|
},
|
|
reset: func() {
|
|
m.SetOwnerID(id)
|
|
},
|
|
},
|
|
{ // CreationEpoch
|
|
change: func() {
|
|
m.SetCreationEpoch(e1 + 1)
|
|
},
|
|
reset: func() {
|
|
m.SetCreationEpoch(e1)
|
|
},
|
|
},
|
|
{ // ExpirationEpoch
|
|
change: func() {
|
|
m.SetExpirationEpoch(e2 + 1)
|
|
},
|
|
reset: func() {
|
|
m.SetExpirationEpoch(e2)
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, item := range items {
|
|
item.change()
|
|
|
|
d2, err := m.SignedData()
|
|
require.NoError(t, err)
|
|
|
|
require.NotEqual(t, d, d2)
|
|
|
|
item.reset()
|
|
}
|
|
}
|