client_anonym_test.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package client_anonym
  2. import (
  3. "os"
  4. "testing"
  5. "git.p78su.freemyip.com/svi/gostore/pkg/mock"
  6. "git.p78su.freemyip.com/svi/gostore/pkg/types"
  7. )
  8. const (
  9. strUrl = "http://localhost:25000/"
  10. )
  11. type tester struct {
  12. t *testing.T
  13. serv types.IService
  14. client *ClientAnonym
  15. }
  16. func TestClientAnonym(t *testing.T) {
  17. fnClear := func() {
  18. _ = os.RemoveAll("./store")
  19. }
  20. fnClear()
  21. defer fnClear()
  22. sf := &tester{
  23. t: t,
  24. }
  25. sf.create()
  26. sf.ping()
  27. sf.close()
  28. }
  29. // Закрытие сервиса
  30. func (sf *tester) close() {
  31. sf.t.Log("close")
  32. sf.serv.CancelApp()
  33. sf.serv.Wg().Wait()
  34. sf.client.close()
  35. }
  36. // Пингует сервер
  37. func (sf *tester) ping() {
  38. sf.t.Log("ping")
  39. sf.pingBad1()
  40. sf.pingBad2()
  41. sf.pingGood1()
  42. }
  43. func (sf *tester) pingGood1() {
  44. sf.t.Log("pingGood1")
  45. err := sf.client.Ping()
  46. if err != nil {
  47. sf.t.Fatalf("pingGood1(): err=\n\t%v", err)
  48. }
  49. }
  50. // Нельзя достучаться до сервиса
  51. func (sf *tester) pingBad2() {
  52. sf.t.Log("pingBad2")
  53. url := sf.client.urlPing
  54. sf.client.urlPing = "https://google.com/time"
  55. err := sf.client.Ping()
  56. if err == nil {
  57. sf.t.Fatalf("pingBad2(): err==nil")
  58. }
  59. sf.client.urlPing = url
  60. }
  61. // Клиент закрыт для запроса
  62. func (sf *tester) pingBad1() {
  63. sf.t.Log("pingBad1")
  64. sf.client.isWork = false
  65. err := sf.client.Ping()
  66. if err == nil {
  67. sf.t.Fatalf("pingBad1(): err==nil")
  68. }
  69. sf.client.isWork = true
  70. }
  71. // Создание клиента
  72. func (sf *tester) create() {
  73. sf.t.Log("create")
  74. sf.createBad1()
  75. sf.createBad2()
  76. sf.createGood1()
  77. }
  78. func (sf *tester) createGood1() {
  79. sf.t.Log("createGood1")
  80. var err error
  81. sf.client, err = NewClientAnonym(sf.serv, strUrl)
  82. if err != nil {
  83. sf.t.Fatalf("createGood1(): err=\n\t%v", err)
  84. }
  85. if sf.client == nil {
  86. sf.t.Fatalf("createGood1(): client==nil")
  87. }
  88. }
  89. // Нет адреса хранилища
  90. func (sf *tester) createBad2() {
  91. sf.t.Log("createBad2")
  92. var err error
  93. sf.serv, err = mock.MakeMock()
  94. if err != nil {
  95. sf.t.Fatalf("createBad2(): err=\n\t%v", err)
  96. }
  97. go sf.serv.Run()
  98. client, err := NewClientAnonym(sf.serv, "")
  99. if err == nil {
  100. sf.t.Fatalf("createBad2(): err==nil")
  101. }
  102. if client != nil {
  103. sf.t.Fatalf("createBad2(): client!=nil")
  104. }
  105. }
  106. // Нет объекта сервиса
  107. func (sf *tester) createBad1() {
  108. sf.t.Log("createBad1")
  109. client, err := NewClientAnonym(nil, strUrl)
  110. if err == nil {
  111. sf.t.Fatalf("createBad1(): err==nil")
  112. }
  113. if client != nil {
  114. sf.t.Fatalf("createBad1(): client!=nil")
  115. }
  116. }