github.com/TIBCOSoftware/flogo-lib@v0.5.9/core/activity/registry_test.go (about)

     1  package activity
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  type MockActivity struct {
    11  	metadata *Metadata
    12  }
    13  
    14  func (MockActivity) Eval(ctx Context) (done bool, err error) {
    15  	return true, nil
    16  }
    17  
    18  func (m *MockActivity) Metadata() *Metadata {
    19  	return m.metadata
    20  }
    21  
    22  func NewMockActivity(id string) *MockActivity {
    23  	return &MockActivity{metadata: &Metadata{ID: id}}
    24  }
    25  
    26  //TestRegisterNilActivity
    27  func TestRegisterNilActivity(t *testing.T) {
    28  
    29  	orig := activities
    30  	activities = make(map[string]Activity)
    31  	defer func() { activities = orig }()
    32  
    33  	err := registerNil()
    34  	assert.NotNil(t, err)
    35  	assert.Equal(t, "cannot register 'nil' activity", err.Error())
    36  }
    37  
    38  func registerNil() (err error) {
    39  	defer func() {
    40  		if r := recover(); r != nil {
    41  			var ok bool
    42  			err, ok = r.(error)
    43  			if !ok {
    44  				err = fmt.Errorf("%v", r)
    45  			}
    46  		}
    47  	}()
    48  
    49  	Register(nil)
    50  	return nil
    51  }
    52  
    53  //TestRegisterDupActivity
    54  func TestRegisterDupActivity(t *testing.T) {
    55  
    56  	orig := activities
    57  	activities = make(map[string]Activity)
    58  	defer func() { activities = orig }()
    59  
    60  	err := registerDup()
    61  	assert.NotNil(t, err)
    62  	assert.Equal(t, "activity already registered: github.com/mock", err.Error())
    63  }
    64  
    65  func registerDup() (err error) {
    66  	defer func() {
    67  		if r := recover(); r != nil {
    68  			var ok bool
    69  			err, ok = r.(error)
    70  			if !ok {
    71  				err = fmt.Errorf("%v", r)
    72  			}
    73  		}
    74  	}()
    75  
    76  	act := NewMockActivity("github.com/mock")
    77  	Register(act)
    78  	Register(act)
    79  	return nil
    80  }
    81  
    82  //TestRegisterActivityOk
    83  func TestRegisterActivityOk(t *testing.T) {
    84  
    85  	orig := activities
    86  	activities = make(map[string]Activity)
    87  	defer func() {
    88  		activities = orig
    89  		r := recover()
    90  		assert.Nil(t, r)
    91  	}()
    92  
    93  	act := NewMockActivity("github.com/mock")
    94  	Register(act)
    95  	assert.Equal(t, 1, len(activities))
    96  }
    97  
    98  //TestGetFactoriesOk
    99  func TestGetFactoriesOk(t *testing.T) {
   100  
   101  	orig := activities
   102  	activities = make(map[string]Activity)
   103  	defer func() {
   104  		activities = orig
   105  		r := recover()
   106  		assert.Nil(t, r)
   107  	}()
   108  
   109  	act := NewMockActivity("github.com/mock")
   110  	Register(act)
   111  
   112  	// Get factory
   113  	as := Activities()
   114  	assert.Equal(t, 1, len(as))
   115  }