slog_file_test.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package slog_file
  2. import (
  3. "os"
  4. "testing"
  5. "time"
  6. "wartank/pkg/mock/mockenv"
  7. "wartank/pkg/mock/mockkernel"
  8. "wartank/pkg/types"
  9. )
  10. /*
  11. Тест для интерфейса логгера в файл
  12. */
  13. type tester struct {
  14. t *testing.T
  15. err error
  16. me *mockenv.MockEnv
  17. kern types.ИЯдро
  18. сам *SlogFile
  19. }
  20. func TestSlogFile(t *testing.T) {
  21. _ = os.RemoveAll("./log")
  22. test := &tester{
  23. t: t,
  24. me: mockenv.NewMockEnv(),
  25. }
  26. test.create()
  27. test.write()
  28. test.close()
  29. test.writeBad1()
  30. test.cancel()
  31. _ = os.RemoveAll("./log")
  32. }
  33. // файл уже закрыт
  34. func (сам *tester) writeBad1() {
  35. if err := сам.сам.write([]byte{}); err == nil {
  36. сам.t.Errorf("write(): err==nil")
  37. }
  38. }
  39. // закрытие логгера
  40. func (сам *tester) close() {
  41. сам.t.Logf("=close=")
  42. сам.kern.CancelApp()
  43. сам.kern.Wg().Wait()
  44. сам.сам.Write("")
  45. }
  46. // отмена работы
  47. func (сам *tester) cancel() {
  48. сам.t.Logf("=cancal=")
  49. сам.createGood1()
  50. сам.kern.CancelApp()
  51. сам.kern.Wg().Wait()
  52. }
  53. // запись сообщения
  54. func (сам *tester) write() {
  55. сам.t.Logf("=write=")
  56. сам.сам.Write("test msg")
  57. time.Sleep(time.Millisecond * 150)
  58. }
  59. // Создание файлового логгера
  60. func (сам *tester) create() {
  61. сам.t.Logf("=create=")
  62. сам.createBad1()
  63. сам.createBad2()
  64. сам.createGood1()
  65. }
  66. func (сам *tester) createGood1() {
  67. сам.t.Logf("=createGood1=")
  68. сам.сам, сам.err = NewSlogFile(сам.kern, "test")
  69. if сам.err != nil {
  70. сам.t.Errorf("createGood1(): err=%v", сам.err)
  71. }
  72. if сам.сам == nil {
  73. сам.t.Errorf("createGood1(): SlogFile == nil")
  74. }
  75. }
  76. // Нет верси сборки
  77. func (сам *tester) createBad2() {
  78. сам.t.Logf("=createBad2=")
  79. сам.kern = mockkernel.NewMockKernel()
  80. сам.сам, сам.err = NewSlogFile(сам.kern, "")
  81. if сам.err == nil {
  82. сам.t.Errorf("createBad2(): err == nil")
  83. }
  84. if сам.сам != nil {
  85. сам.t.Errorf("createBad2(): SlogFile != nil")
  86. }
  87. }
  88. // Нет объекта ядра
  89. func (сам *tester) createBad1() {
  90. сам.t.Logf("=createBad1=")
  91. сам.сам, сам.err = NewSlogFile(nil, "test")
  92. if сам.err == nil {
  93. сам.t.Errorf("createBad1(): err == nil")
  94. }
  95. if сам.сам != nil {
  96. сам.t.Errorf("createBad1(): SlogFile != nil")
  97. }
  98. }