package khepri_test

import (
	"io/ioutil"
	"os"
	"path/filepath"
	"testing"
)

var testFiles = []struct {
	name    string
	content []byte
}{
	{"foo", []byte("bar")},
	{"bar/foo2", []byte("bar2")},
	{"bar/bla/blubb", []byte("This is just a test!\n")},
}

// prepare directory and return temporary path
func prepare_dir(t *testing.T) string {
	tempdir, err := ioutil.TempDir("", "khepri-test-")
	ok(t, err)

	for _, test := range testFiles {
		file := filepath.Join(tempdir, test.name)
		dir := filepath.Dir(file)
		if dir != "." {
			ok(t, os.MkdirAll(dir, 0755))
		}

		f, err := os.Create(file)
		defer func() {
			ok(t, f.Close())
		}()

		ok(t, err)

		_, err = f.Write(test.content)
		ok(t, err)
	}

	t.Logf("tempdir prepared at %s", tempdir)

	return tempdir
}

func TestTree(t *testing.T) {
	dir := prepare_dir(t)
	defer func() {
		if *testCleanup {
			ok(t, os.RemoveAll(dir))
		}
	}()
}