rove/pkg/persistence/persistence_test.go

53 lines
1.5 KiB
Go
Raw Normal View History

package persistence
import (
"io/ioutil"
"os"
"testing"
"github.com/stretchr/testify/assert"
)
type Dummy struct {
Success bool
Value int
}
func TestPersistence_LoadSave(t *testing.T) {
tmp, err := ioutil.TempDir(os.TempDir(), "rove_persistence_test")
assert.NoError(t, err, "Failed to get tempdir path")
assert.NoError(t, SetPath(tmp), "Failed to get set tempdir to persistence path")
// Try and save out the dummy
var dummy Dummy
dummy.Success = true
assert.NoError(t, Save("test", dummy), "Failed to save out dummy file")
// Load back the dummy
dummy = Dummy{}
assert.NoError(t, Load("test", &dummy), "Failed to load in dummy file")
assert.Equal(t, true, dummy.Success, "Did not successfully load true value from file")
}
func TestPersistence_LoadSaveAll(t *testing.T) {
tmp, err := ioutil.TempDir(os.TempDir(), "rove_persistence_test")
assert.NoError(t, err, "Failed to get tempdir path")
assert.NoError(t, SetPath(tmp), "Failed to get set tempdir to persistence path")
// Try and save out the dummy
var dummyA Dummy
var dummyB Dummy
dummyA.Value = 1
dummyB.Value = 2
assert.NoError(t, SaveAll("a", dummyA, "b", dummyB), "Failed to save out dummy file")
// Load back the dummy
dummyA = Dummy{}
dummyB = Dummy{}
assert.NoError(t, LoadAll("a", &dummyA, "b", &dummyB), "Failed to load in dummy file")
assert.Equal(t, 1, dummyA.Value, "Did not successfully load int value from file")
assert.Equal(t, 2, dummyB.Value, "Did not successfully load int value from file")
}