package common

import (
	
	
)

type Mock struct {
	Dir     string
	Replies map[string]string
}

func ( Mock) () string {
	return .Dir + "/cache/"
}

func ( Mock) () string {
	return .Dir + "/work/"
}

type t interface {
	Name() string
	Fatal(...interface{})
}

func ( t) *Mock {
	,  := os.MkdirTemp(os.TempDir(), fmt.Sprintf("carapace-sandbox_%v_", .Name()))
	if  != nil {
		.Fatal("failed to create sandbox dir: " + .Error())
	}

	 := &Mock{
		Dir:     ,
		Replies: make(map[string]string),
	}
	if  := os.Mkdir(.CacheDir(), os.ModePerm);  != nil {
		.Fatal("failed to create sandbox cache dir: " + .Error())
	}
	if  := os.Mkdir(.WorkDir(), os.ModePerm);  != nil {
		.Fatal("failed to create sandbox work dir: " + .Error())
	}
	return 
}