task-test.ss
#lang scheme/base

(require (planet schematics/schemeunit:3/test))
(require "task.ss")

(provide task-tests)

(define (do-nothing) (void))

;; Dependencies
;; a -> b c
;; b -> c d
;; c -> d e f
;;
;; Order: d e f c b a
(define d (make-task 'd null do-nothing))
(define e (make-task 'e null do-nothing))
(define f (make-task 'f null do-nothing))
(define-task c (d e f) (void))
(define-task b (c d) (void))
(define-task a (b c) 2)

(define task-tests
  (test-suite
   "All tests for task"

   (test-case
    "task-traverse"
    (let-values (([v o] (task-traverse a)))
      (check-equal? o (list f e d c b a))))

   (test-case
    "task-run-action"
    (check-equal? (task-run-action a) 2))
   ))