From d9542428b5f537206116bc8e67d3588a5ff63051 Mon Sep 17 00:00:00 2001 From: AlexKnauth Date: Thu, 24 Sep 2015 16:39:27 -0400 Subject: [PATCH] add tests for fallback errors --- lens/private/tests/gen-lens-fallback-loop.rkt | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 lens/private/tests/gen-lens-fallback-loop.rkt diff --git a/lens/private/tests/gen-lens-fallback-loop.rkt b/lens/private/tests/gen-lens-fallback-loop.rkt new file mode 100644 index 0000000..8c63ae5 --- /dev/null +++ b/lens/private/tests/gen-lens-fallback-loop.rkt @@ -0,0 +1,31 @@ +#lang racket/base +(require lens/private/base/gen-lens + rackunit + racket/function) + +(struct bad1 () + #:methods gen:lens []) +(check-exn #rx"lens-view: not implemented" + (thunk (lens-view (bad1) 1))) +(check-exn #rx"lens-set: not implemented" + (thunk (lens-set (bad1) 1 1))) +(check-exn #rx"focus-lens: not implemented" + (thunk (focus-lens (bad1) 1))) + +(struct bad2 () + #:methods gen:lens + [(define (lens-view this tgt) "something")]) +(check-equal? (lens-view (bad2) 1) "something") +(check-exn #rx"lens-set: not implemented" + (thunk (lens-set (bad2) 1 1))) +(check-exn #rx"focus-lens: not implemented" + (thunk (focus-lens (bad2) 1))) + +(struct bad3 () + #:methods gen:lens + [(define (lens-set this tgt nvw) tgt)]) +(check-equal? (lens-set (bad3) 1 2) 1) +(check-exn #rx"lens-view: not implemented" + (thunk (lens-view (bad3) 1))) +(check-exn #rx"focus-lens: not implemented" + (thunk (focus-lens (bad3) 1)))