github.com/influx6/npkg@v0.8.8/njobs/njobs_test.go (about) 1 package njobs_test 2 3 import ( 4 "bytes" 5 "errors" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 10 "github.com/influx6/npkg/njobs" 11 ) 12 13 func TestJobFunction_OS_Jobs(t *testing.T) { 14 var jobs njobs.Jobs 15 jobs.Add(njobs.Mkdir("./tmp", 0777)) 16 jobs.Add(njobs.NewFile("sample.txt", 0777, bytes.NewReader([]byte("yo")))) 17 jobs.Add(njobs.JobFunction(func(d interface{}) (interface{}, error) { 18 require.Equal(t, "tmp/sample.txt", d) 19 return d, nil 20 })) 21 jobs.Add(njobs.DeleteDir("./tmp")) 22 23 var result, err = jobs.Do(".") 24 require.NoError(t, err) 25 require.Equal(t, "./tmp", result) 26 27 } 28 29 func TestJobFunction_Do(t *testing.T) { 30 var jobs njobs.Jobs 31 32 var doOne = njobs.JobFunction(func(d interface{}) (interface{}, error) { 33 require.Equal(t, 1, d) 34 return 2, nil 35 }) 36 37 var doTwo = njobs.JobFunction(func(d interface{}) (interface{}, error) { 38 require.Equal(t, 2, d) 39 return 3, nil 40 }) 41 42 jobs.Add(doOne) 43 jobs.Add(doTwo) 44 45 var result, err = jobs.Do(1) 46 require.NoError(t, err) 47 require.Equal(t, 3, result) 48 } 49 50 func TestJobFunction_Do_Failed(t *testing.T) { 51 var jobs njobs.Jobs 52 53 var doOne = njobs.JobFunction(func(d interface{}) (interface{}, error) { 54 require.Equal(t, 1, d) 55 return 2, errors.New("bad") 56 }) 57 58 var doTwo = njobs.JobFunction(func(d interface{}) (interface{}, error) { 59 require.Equal(t, 2, d) 60 return 3, nil 61 }) 62 63 jobs.Add(doOne) 64 jobs.Add(doTwo) 65 66 var result, err = jobs.Do(1) 67 require.Error(t, err) 68 require.Equal(t, 2, result) 69 }