package client_anonym import ( "os" "testing" "git.p78su.freemyip.com/svi/gostore/pkg/mock" "git.p78su.freemyip.com/svi/gostore/pkg/types" ) const ( strUrl = "http://localhost:25000/" ) type tester struct { t *testing.T serv types.IService client *ClientAnonym } func TestClientAnonym(t *testing.T) { fnClear := func() { _ = os.RemoveAll("./store") } fnClear() defer fnClear() sf := &tester{ t: t, } sf.create() sf.ping() sf.close() } // Закрытие сервиса func (sf *tester) close() { sf.t.Log("close") sf.serv.CancelApp() sf.serv.Wg().Wait() sf.client.close() } // Пингует сервер func (sf *tester) ping() { sf.t.Log("ping") sf.pingBad1() sf.pingBad2() sf.pingGood1() } func (sf *tester) pingGood1() { sf.t.Log("pingGood1") err := sf.client.Ping() if err != nil { sf.t.Fatalf("pingGood1(): err=\n\t%v", err) } } // Нельзя достучаться до сервиса func (sf *tester) pingBad2() { sf.t.Log("pingBad2") url := sf.client.urlPing sf.client.urlPing = "https://google.com/time" err := sf.client.Ping() if err == nil { sf.t.Fatalf("pingBad2(): err==nil") } sf.client.urlPing = url } // Клиент закрыт для запроса func (sf *tester) pingBad1() { sf.t.Log("pingBad1") sf.client.isWork = false err := sf.client.Ping() if err == nil { sf.t.Fatalf("pingBad1(): err==nil") } sf.client.isWork = true } // Создание клиента func (sf *tester) create() { sf.t.Log("create") sf.createBad1() sf.createBad2() sf.createGood1() } func (sf *tester) createGood1() { sf.t.Log("createGood1") var err error sf.client, err = NewClientAnonym(sf.serv, strUrl) if err != nil { sf.t.Fatalf("createGood1(): err=\n\t%v", err) } if sf.client == nil { sf.t.Fatalf("createGood1(): client==nil") } } // Нет адреса хранилища func (sf *tester) createBad2() { sf.t.Log("createBad2") var err error sf.serv, err = mock.MakeMock() if err != nil { sf.t.Fatalf("createBad2(): err=\n\t%v", err) } go sf.serv.Run() client, err := NewClientAnonym(sf.serv, "") if err == nil { sf.t.Fatalf("createBad2(): err==nil") } if client != nil { sf.t.Fatalf("createBad2(): client!=nil") } } // Нет объекта сервиса func (sf *tester) createBad1() { sf.t.Log("createBad1") client, err := NewClientAnonym(nil, strUrl) if err == nil { sf.t.Fatalf("createBad1(): err==nil") } if client != nil { sf.t.Fatalf("createBad1(): client!=nil") } }