- package service
-
- import (
- "testing"
- "time"
-
- "github.com/stretchr/testify/require"
- )
-
- type testService struct {
- BaseService
- }
-
- func (testService) OnReset() error {
- return nil
- }
-
- func TestBaseServiceWait(t *testing.T) {
- ts := &testService{}
- ts.BaseService = *NewBaseService(nil, "TestService", ts)
- err := ts.Start()
- require.NoError(t, err)
-
- waitFinished := make(chan struct{})
- go func() {
- ts.Wait()
- waitFinished <- struct{}{}
- }()
-
- go ts.Stop() //nolint:errcheck // ignore for tests
-
- select {
- case <-waitFinished:
- // all good
- case <-time.After(100 * time.Millisecond):
- t.Fatal("expected Wait() to finish within 100 ms.")
- }
- }
-
- func TestBaseServiceReset(t *testing.T) {
- ts := &testService{}
- ts.BaseService = *NewBaseService(nil, "TestService", ts)
- err := ts.Start()
- require.NoError(t, err)
-
- err = ts.Reset()
- require.Error(t, err, "expected cant reset service error")
-
- err = ts.Stop()
- require.NoError(t, err)
-
- err = ts.Reset()
- require.NoError(t, err)
-
- err = ts.Start()
- require.NoError(t, err)
- }
|