Files
core/restream/store/json_test.go

85 lines
1.6 KiB
Go

package store
import (
"os"
"testing"
"github.com/stretchr/testify/require"
)
func TestNew(t *testing.T) {
store := NewJSONStore(JSONConfig{})
require.NotEmpty(t, store)
}
func TestLoad(t *testing.T) {
store := NewJSONStore(JSONConfig{
Filepath: "./fixtures/v4_empty.json",
})
_, err := store.Load()
require.Equal(t, nil, err)
}
func TestLoadFailed(t *testing.T) {
store := NewJSONStore(JSONConfig{
Filepath: "./fixtures/v4_invalid.json",
})
_, err := store.Load()
require.NotEqual(t, nil, err)
}
func TestIsEmpty(t *testing.T) {
store := NewJSONStore(JSONConfig{
Filepath: "./fixtures/v4_empty.json",
})
data, err := store.Load()
require.NoError(t, err)
require.Equal(t, true, data.IsEmpty())
}
func TestNotExists(t *testing.T) {
store := NewJSONStore(JSONConfig{
Filepath: "./fixtures/v4_notexist.json",
})
data, err := store.Load()
require.NoError(t, err)
require.Equal(t, true, data.IsEmpty())
}
func TestStore(t *testing.T) {
os.Remove("./fixtures/v4_store.json")
store := NewJSONStore(JSONConfig{
Filepath: "./fixtures/v4_store.json",
})
data, err := store.Load()
require.NoError(t, err)
require.Equal(t, true, data.IsEmpty())
data.Metadata.System["somedata"] = "foobar"
store.Store(data)
data2, err := store.Load()
require.NoError(t, err)
require.Equal(t, data, data2)
os.Remove("./fixtures/v4_store.json")
}
func TestInvalidVersion(t *testing.T) {
store := NewJSONStore(JSONConfig{
Filepath: "./fixtures/v3_empty.json",
})
data, err := store.Load()
require.Error(t, err)
require.Equal(t, true, data.IsEmpty())
}