successfully able to run simple workflows

Signed-off-by: Casey Lee <cplee@nektos.com>
This commit is contained in:
Casey Lee
2020-02-06 22:17:58 -08:00
parent 8c49ba0cec
commit 532af98aef
23 changed files with 958 additions and 495 deletions

View File

@@ -1,6 +1,7 @@
package common
import (
"context"
"fmt"
"testing"
@@ -10,58 +11,62 @@ import (
func TestNewWorkflow(t *testing.T) {
assert := assert.New(t)
ctx := context.Background()
// empty
emptyWorkflow := NewPipelineExecutor()
assert.Nil(emptyWorkflow())
assert.Nil(emptyWorkflow(ctx))
// error case
errorWorkflow := NewErrorExecutor(fmt.Errorf("test error"))
assert.NotNil(errorWorkflow())
assert.NotNil(errorWorkflow(ctx))
// multiple success case
runcount := 0
successWorkflow := NewPipelineExecutor(
func() error {
func(ctx context.Context) error {
runcount++
return nil
},
func() error {
func(ctx context.Context) error {
runcount++
return nil
})
assert.Nil(successWorkflow())
assert.Nil(successWorkflow(ctx))
assert.Equal(2, runcount)
}
func TestNewConditionalExecutor(t *testing.T) {
assert := assert.New(t)
ctx := context.Background()
trueCount := 0
falseCount := 0
err := NewConditionalExecutor(func() bool {
err := NewConditionalExecutor(func(ctx context.Context) bool {
return false
}, func() error {
}, func(ctx context.Context) error {
trueCount++
return nil
}, func() error {
}, func(ctx context.Context) error {
falseCount++
return nil
})()
})(ctx)
assert.Nil(err)
assert.Equal(0, trueCount)
assert.Equal(1, falseCount)
err = NewConditionalExecutor(func() bool {
err = NewConditionalExecutor(func(ctx context.Context) bool {
return true
}, func() error {
}, func(ctx context.Context) error {
trueCount++
return nil
}, func() error {
}, func(ctx context.Context) error {
falseCount++
return nil
})()
})(ctx)
assert.Nil(err)
assert.Equal(1, trueCount)
@@ -71,13 +76,15 @@ func TestNewConditionalExecutor(t *testing.T) {
func TestNewParallelExecutor(t *testing.T) {
assert := assert.New(t)
ctx := context.Background()
count := 0
emptyWorkflow := NewPipelineExecutor(func() error {
emptyWorkflow := NewPipelineExecutor(func(ctx context.Context) error {
count++
return nil
})
err := NewParallelExecutor(emptyWorkflow, emptyWorkflow)()
err := NewParallelExecutor(emptyWorkflow, emptyWorkflow)(ctx)
assert.Equal(2, count)
assert.Nil(err)