package owner import ( "testing" ) type tester0 struct { t *testing.T owner *LOwner op *OwnerPass } func TestOwnerPass(t *testing.T) { sf := &tester0{ t: t, owner: LetOwner(1, "test_owner_dest"), op: nil, } sf.mut() sf.move() sf.check() } // Проверка владения func (sf *tester0) check() { sf.t.Log("check") defer func() { if _panic := recover(); _panic == nil { sf.t.Fatalf("check(): panic==nil") } }() sf.op.CheckOwner() } // Перемещение владельца func (sf *tester0) move() { sf.t.Log("move") { // dest ownerDest := sf.op.Owner() if ownerDest.Name() != "test_owner_dest" { sf.t.Fatalf("check(): ownerDest(%v) != \"test_owner_dest\"", ownerDest.Name()) } } owner := sf.op.Move(LetOwner(2, "test_owner_cur")) if owner.String() == sf.op.String() { sf.t.Fatalf("move(): ownerOld==ownerNew") } { // cur ownerCur := owner.OwnerCur() if ownerCur.Name() != "test_owner_cur" { sf.t.Fatalf("check(): ownerCur(%v) != \"test_owner_cur\"", ownerCur.Name()) } } } // Создаёт объект паспорта владельца func (sf *tester0) mut() { sf.t.Log("mut") sf.op = &OwnerPass{ ownerDest: sf.owner, ownerCur: sf.owner, } _ = sf.op.String() }