test/pathlike.ss
(module pathlike mzscheme
  (require "../pathlike.ss"
           (planet "test.ss" ("schematics" "schemeunit.plt" 1)))
  (provide pathlike-test)
  
  (define pathlike-test
    (make-test-suite "pathlike.ss"
      (make-test-case "pathlike?"
        (assert-true (pathlike? "a"))
        (assert-true (pathlike? (string->path "a")))
        (assert-false (pathlike? #"a"))
        (assert-false (pathlike? 5))
        (assert-false (pathlike? 'hello)))
      (make-test-case "pathlike->string"
        (assert-equal? (pathlike->string (string->path "a")) "a")
        (assert-equal? (pathlike->string "a") "a")
        (assert-exn exn:fail:contract? 
                    (lambda () (pathlike->string #"a"))))
      (make-test-case "pathlike->path"
        (assert-equal? (pathlike->path (string->path "a")) (string->path "a"))
        (assert-equal? (pathlike->path "a") (string->path "a"))
        (assert-exn exn:fail:contract? 
                    (lambda () (pathlike->path #"a"))))
      (make-test-case "pathlike->bytes"
        (assert-equal? (pathlike->bytes (string->path "a")) #"a")
        (assert-equal? (pathlike->bytes "a") #"a")
        (assert-exn exn:fail:contract? 
                    (lambda () (pathlike->bytes #"a"))))))
  )