package safe_bool

import "testing"

/*
	Тест для потокобезопасного булевого признака
*/

// Тестер для булевого признака
type tester struct {
	t  *testing.T
	sb *БезопБул
}

func TestSafeBool(t *testing.T) {
	test := &tester{
		t: t,
	}
	test.create()
	test.set()
}

// Присовение и сброс признака
func (сам *tester) set() {
	сам.t.Logf("=set=\n")
	сам.sb.Уст()
	if isReset := сам.sb.Получ(); !isReset {
		сам.t.Errorf("create(): isReset==true\n")
	}
	сам.sb.Сброс()
	if isSet := сам.sb.Получ(); isSet {
		сам.t.Errorf("create(): isSet==true\n")
	}
}

// Создание признака
func (сам *tester) create() {
	сам.t.Logf("=create=\n")
	сам.sb = НовБезопБул()
	if сам.sb == nil {
		сам.t.Errorf("create(): safeBool==nil\n")
	}
	if isSet := сам.sb.Получ(); isSet {
		сам.t.Errorf("create(): isSet==true\n")
	}
}
