package mock_service

import (
	"os"
	"testing"
)

type tester struct {
	t    *testing.T
	serv *MockService
}

func TestMockService(t *testing.T) {
	fnClear := func() {
		_ = os.RemoveAll("./store")
	}
	fnClear()
	defer fnClear()
	sf := &tester{
		t: t,
	}
	sf.create()
}

// Создание мок-сервиса
func (sf *tester) create() {
	sf.t.Log("create")
	sf.serv = NewMockService()
	if sf.serv == nil {
		sf.t.Fatalf("create(): serv==nil")
	}
	if store := sf.serv.Store(); store != nil {
		sf.t.Fatalf("create(): store!=nil")
	}
	if serv := sf.serv.ServHttp(); serv != nil {
		sf.t.Fatalf("create(): serv!=nil")
	}
	if err := sf.serv.Run(); err != nil {
		sf.t.Fatalf("create(): err=\n\t%v", err)
	}
	if ctx := sf.serv.Ctx(); ctx == nil {
		sf.t.Fatalf("create(): ctx==nil")
	}
	sf.serv.CancelApp()
}
