github.com/TIBCOSoftware/flogo-lib@v0.5.9/core/trigger/registry_test.go (about) 1 package trigger 2 3 import ( 4 //"context" 5 "testing" 6 7 "github.com/TIBCOSoftware/flogo-lib/core/action" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 type MockFactory struct { 12 } 13 14 func (f *MockFactory) New(config *Config) Trigger { 15 return &MockTrigger{} 16 } 17 18 type MockTrigger struct { 19 } 20 21 func (t *MockTrigger) Init(actionRunner action.Runner) { 22 //Noop 23 } 24 25 func (t *MockTrigger) Start() error { return nil } 26 func (t *MockTrigger) Stop() error { return nil } 27 func (t *MockTrigger) Metadata() *Metadata { return nil } 28 29 //TestRegisterFactoryEmptyRef 30 func TestRegisterFactoryEmptyRef(t *testing.T) { 31 32 orig := triggerFactories 33 triggerFactories = make(map[string]Factory) 34 defer func() { triggerFactories = orig }() 35 36 // Register factory 37 err := RegisterFactory("", nil) 38 39 assert.NotNil(t, err) 40 assert.Equal(t, "'ref' must be specified when registering a trigger factory", err.Error()) 41 } 42 43 //TestRegisterFactoryNilFactory 44 func TestRegisterFactoryNilFactory(t *testing.T) { 45 46 orig := triggerFactories 47 triggerFactories = make(map[string]Factory) 48 defer func() { triggerFactories = orig }() 49 50 // Register factory 51 err := RegisterFactory("github.com/mock", nil) 52 53 assert.NotNil(t, err) 54 assert.Equal(t, "cannot register 'nil' trigger factory", err.Error()) 55 } 56 57 //TestAddFactoryDuplicated 58 func TestAddFactoryDuplicated(t *testing.T) { 59 60 orig := triggerFactories 61 triggerFactories = make(map[string]Factory) 62 defer func() { triggerFactories = orig }() 63 64 f := &MockFactory{} 65 66 // Register factory: this time should pass 67 err := RegisterFactory("github.com/mock", f) 68 assert.Nil(t, err) 69 70 // Register factory: this time should fail, duplicated 71 err = RegisterFactory("github.com/mock", f) 72 assert.NotNil(t, err) 73 assert.Equal(t, "trigger factory already registered for ref 'github.com/mock'", err.Error()) 74 } 75 76 //TestAddFactoryOk 77 func TestAddFactoryOk(t *testing.T) { 78 79 orig := triggerFactories 80 triggerFactories = make(map[string]Factory) 81 defer func() { triggerFactories = orig }() 82 83 f := &MockFactory{} 84 85 // Add factory 86 err := RegisterFactory("github.com/mock", f) 87 assert.Nil(t, err) 88 assert.Equal(t, 1, len(triggerFactories)) 89 } 90 91 //TestGetFactoriesOk 92 func TestGetFactoriesOk(t *testing.T) { 93 94 orig := triggerFactories 95 triggerFactories = make(map[string]Factory) 96 defer func() { triggerFactories = orig }() 97 98 f := &MockFactory{} 99 100 // Add factory 101 err := RegisterFactory("github.com/mock", f) 102 assert.Nil(t, err) 103 104 // Get factory 105 fs := Factories() 106 assert.Equal(t, 1, len(fs)) 107 }