package mockkernel

import (
	"os"
	"testing"

	"wartank/pkg/components/kernel/slog"
)

const (
	path = "./log"
)

// Тестер для мок-объекта ядра
type tester struct {
	t    *testing.T
	err  error
	kern *MockKernel
}

func TestMockKernel(t *testing.T) {
	_ = os.RemoveAll(path)
	test := &tester{
		t: t,
	}
	test.create()
	_ = os.RemoveAll(path)
}

// Создание мок-объекта ядра приложения
func (sf *tester) create() {
	sf.t.Logf("create()\n")
	sf.kern = NewMockKernel()
	if sf.kern == nil {
		sf.t.Errorf("create(): app==nil\n")
	}
	if wg := sf.kern.Wg(); wg == nil {
		sf.t.Errorf("create(): wg==nil\n")
	}
	if ctx := sf.kern.CtxApp(); ctx == nil {
		sf.t.Errorf("create(): ctx==nil\n")
	}
	sf.kern.Slog_, sf.err = slog.NewSlog(sf.kern)
	if sf.err != nil {
		sf.t.Errorf("create(): in create ISlog, err=\n\t%v", sf.err)
	}
	if slog := sf.kern.Slog(); slog == nil {
		sf.t.Errorf("create(): slog==nil")
	}
	sf.kern.CancelApp()
}
