51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package composition
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/stretchr/testify/assert"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestCreateChild(t *testing.T) {
|
||
|
|
composer := NewWorkflowComposer()
|
||
|
|
config := map[string]interface{}{"tasks": 5}
|
||
|
|
|
||
|
|
child, err := composer.CreateChild("T0.1", config)
|
||
|
|
assert.NoError(t, err)
|
||
|
|
assert.NotNil(t, child)
|
||
|
|
assert.Equal(t, "T0.1", child.ParentTask)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestGetChild(t *testing.T) {
|
||
|
|
composer := NewWorkflowComposer()
|
||
|
|
|
||
|
|
child, _ := composer.CreateChild("T0.1", map[string]interface{}{})
|
||
|
|
|
||
|
|
retrieved, found := composer.GetChild(child.ID)
|
||
|
|
assert.True(t, found)
|
||
|
|
assert.Equal(t, child.ID, retrieved.ID)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestListChildren(t *testing.T) {
|
||
|
|
composer := NewWorkflowComposer()
|
||
|
|
|
||
|
|
for i := 0; i < 3; i++ {
|
||
|
|
composer.CreateChild("T0.1", map[string]interface{}{})
|
||
|
|
}
|
||
|
|
|
||
|
|
children := composer.ListChildren()
|
||
|
|
assert.Equal(t, 3, len(children))
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestSetChildStatus(t *testing.T) {
|
||
|
|
composer := NewWorkflowComposer()
|
||
|
|
|
||
|
|
child, _ := composer.CreateChild("T0.1", map[string]interface{}{})
|
||
|
|
|
||
|
|
err := composer.SetChildStatus(child.ID, "completed")
|
||
|
|
assert.NoError(t, err)
|
||
|
|
|
||
|
|
updated, _ := composer.GetChild(child.ID)
|
||
|
|
assert.Equal(t, "completed", updated.Status)
|
||
|
|
}
|