client_anonym_test.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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:18080/anonym/time"
  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. sf.client.urlPing = "https://google.com/time"
  54. err := sf.client.Ping()
  55. if err == nil {
  56. sf.t.Fatalf("pingBad2(): err==nil")
  57. }
  58. sf.client.urlPing = strUrl
  59. }
  60. // Клиент закрыт для запроса
  61. func (sf *tester) pingBad1() {
  62. sf.t.Log("pingBad1")
  63. sf.client.isWork = false
  64. err := sf.client.Ping()
  65. if err == nil {
  66. sf.t.Fatalf("pingBad1(): err==nil")
  67. }
  68. sf.client.isWork = true
  69. }
  70. // Создание клиента
  71. func (sf *tester) create() {
  72. sf.t.Log("create")
  73. sf.createBad1()
  74. sf.createBad2()
  75. sf.createGood1()
  76. }
  77. func (sf *tester) createGood1() {
  78. sf.t.Log("createGood1")
  79. var err error
  80. sf.client, err = NewClientAnonym(sf.serv, strUrl)
  81. if err != nil {
  82. sf.t.Fatalf("createGood1(): err=\n\t%v", err)
  83. }
  84. if sf.client == nil {
  85. sf.t.Fatalf("createGood1(): client==nil")
  86. }
  87. }
  88. // Нет адреса хранилища
  89. func (sf *tester) createBad2() {
  90. sf.t.Log("createBad2")
  91. err := os.Unsetenv("STORE_HTTP_PORT")
  92. if err != nil {
  93. sf.t.Fatalf("createBad2(): err=\n\t%v", err)
  94. }
  95. err = os.Setenv("STORE_HTTP_PORT", "18080")
  96. if err != nil {
  97. sf.t.Fatalf("createBad2(): err=\n\t%v", err)
  98. }
  99. sf.serv, err = mock.MakeMock()
  100. if err != nil {
  101. sf.t.Fatalf("createBad2(): err=\n\t%v", err)
  102. }
  103. go sf.serv.Run()
  104. client, err := NewClientAnonym(sf.serv, "")
  105. if err == nil {
  106. sf.t.Fatalf("createBad2(): err==nil")
  107. }
  108. if client != nil {
  109. sf.t.Fatalf("createBad2(): client!=nil")
  110. }
  111. }
  112. // Нет объекта сервиса
  113. func (sf *tester) createBad1() {
  114. sf.t.Log("createBad1")
  115. client, err := NewClientAnonym(nil, strUrl)
  116. if err == nil {
  117. sf.t.Fatalf("createBad1(): err==nil")
  118. }
  119. if client != nil {
  120. sf.t.Fatalf("createBad1(): client!=nil")
  121. }
  122. }