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  }