Forgot to add test

main v0.3.3
René Jochum 2 years ago
parent c8f4f2ddb6
commit 61b1da7807
Signed by: jochum
GPG Key ID: F7D906F5E51E8E5E

@ -0,0 +1,121 @@
package components
import (
"context"
"errors"
"testing"
"time"
"github.com/urfave/cli/v2"
"go-micro.dev/v4"
)
type TestHandler struct {
initialized bool
name string
priority int
TimeInit time.Time
TimeStop time.Time
}
func newTestHandler(name string, priority int) *TestHandler {
return &TestHandler{name: name, priority: priority}
}
func (h *TestHandler) Name() string {
return h.name
}
func (h *TestHandler) Priority() int {
return h.priority
}
func (h *TestHandler) Initialized() bool {
return h.initialized
}
func (h *TestHandler) Init(components *Registry, cli *cli.Context) error {
if h.initialized {
return errors.New("already initialized")
}
h.TimeInit = time.Now()
h.initialized = true
return nil
}
func (h *TestHandler) Stop() error {
if !h.initialized {
return errors.New("not initialized")
}
h.TimeStop = time.Now()
h.initialized = false
return nil
}
func (h *TestHandler) Flags(r *Registry) []cli.Flag {
return []cli.Flag{}
}
func (h *TestHandler) Health(context context.Context) error {
return nil
}
func TestInitSorting(t *testing.T) {
h1 := newTestHandler("Test1", 1)
h2 := newTestHandler("Test2", 5)
service := micro.NewService()
cReg := New(service, "test", h2, h1)
cli := &cli.Context{}
if err := cReg.Init(cli); err != nil {
t.Error(err)
return
}
if h2.TimeInit.Before(h1.TimeInit) {
t.Error("Test has been initialized before Test1")
return
}
}
func TestStopBeforeInit(t *testing.T) {
h1 := newTestHandler("Test1", 1)
h2 := newTestHandler("Test2", 5)
service := micro.NewService()
cReg := New(service, "test", h1, h2)
if err := cReg.Stop(); err == nil {
t.Error("Stop must fail if there was no init before")
return
}
}
func TestStopSorting(t *testing.T) {
h1 := newTestHandler("Test1", 1)
h2 := newTestHandler("Test2", 5)
service := micro.NewService()
cReg := New(service, "test", h2, h1)
cli := &cli.Context{}
if err := cReg.Init(cli); err != nil {
t.Error(err)
return
}
if err := cReg.Stop(); err != nil {
t.Error(err)
return
}
if h1.TimeStop.Before(h2.TimeStop) {
t.Error("Test has been initialized before Test1")
return
}
}
Loading…
Cancel
Save