keeper_test.go 1.7 KB

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