keeper_test.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package keeper
  2. import (
  3. "os"
  4. "syscall"
  5. "testing"
  6. "time"
  7. "wartank/pkg/components/kernel/slog"
  8. "wartank/pkg/mock/mockenv"
  9. "wartank/pkg/mock/mockkernel"
  10. "wartank/pkg/types"
  11. )
  12. /*
  13. Тест для сторожа
  14. */
  15. // Тестер для сторожа
  16. type tester struct {
  17. t *testing.T
  18. err error
  19. me *mockenv.MockEnv
  20. kp *Keeper
  21. kern types.ИЯдро
  22. }
  23. func TestKeeper(t *testing.T) {
  24. test := &tester{
  25. t: t,
  26. me: mockenv.NewMockEnv(),
  27. }
  28. test.create()
  29. test.cancel()
  30. _ = os.RemoveAll("./log")
  31. }
  32. // Отмена глобального контекста приложения
  33. func (сам *tester) cancel() {
  34. сам.kp.chSys <- syscall.SIGTERM
  35. time.Sleep(time.Microsecond * 150)
  36. сам.createGood1()
  37. сам.kern.CancelApp()
  38. time.Sleep(time.Microsecond * 150)
  39. }
  40. // Создание сторожа
  41. func (сам *tester) create() {
  42. сам.createBad1()
  43. сам.createGood1()
  44. }
  45. func (сам *tester) createGood1() {
  46. defer func() {
  47. if _panic := recover(); _panic != nil {
  48. сам.t.Errorf("createGood1(: panic=\n\t%v\n", _panic)
  49. }
  50. }()
  51. сам.me.Unset()
  52. if err := сам.me.InitLocal(); err != nil {
  53. сам.t.Errorf("createGood1(): не локальное окружение, err=\n\t%v\n", err)
  54. return
  55. }
  56. сам.kern = mockkernel.NewMockKernel()
  57. ядро := сам.kern.(*mockkernel.MockKernel)
  58. ядро.Slog_, сам.err = slog.NewSlog(сам.kern)
  59. if сам.err != nil {
  60. сам.t.Errorf("createGood1(): in create ISlog, err=\n\t%v", сам.err)
  61. }
  62. сам.kp = NewKeeper(сам.kern)
  63. if сам.kp == nil {
  64. сам.t.Errorf("createGood1(): keep==nil")
  65. }
  66. }
  67. // Нет объекта приложения
  68. func (сам *tester) createBad1() {
  69. defer func() {
  70. if _panic := recover(); _panic == nil {
  71. сам.t.Errorf("createBad1(: panic==nil\n")
  72. }
  73. if сам.kp != nil {
  74. сам.t.Errorf("createBad1(): keep!=nil")
  75. }
  76. }()
  77. сам.kp = NewKeeper(nil)
  78. }