package manifest

import (
	"testing"

	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
)

func TestManifestRoundtrip(t *testing.T) {
	dir := t.TempDir()

	err := Save(dir, 42)
	require.NoError(t, err)

	m, err := Load(dir)
	require.NoError(t, err)
	assert.Equal(t, uint64(42), m.RecoverySegmentID)
}

func TestManifestMissing(t *testing.T) {
	dir := t.TempDir()

	m, err := Load(dir)
	require.NoError(t, err)
	assert.Equal(t, uint64(0), m.RecoverySegmentID)
}

func TestCurrentRoundtrip(t *testing.T) {
	dir := t.TempDir()

	err := WriteCurrent(dir, 5)
	require.NoError(t, err)

	segmentID, ok := ReadCurrent(dir)
	assert.True(t, ok)
	assert.Equal(t, uint64(5), segmentID)
}

func TestCurrentMissing(t *testing.T) {
	dir := t.TempDir()

	_, ok := ReadCurrent(dir)
	assert.False(t, ok)
}
