 				return Paper()
 			}
 			}, forReuseIdentifier: identifier)
-		let glass = testRecyclingCenter.dequeueObjectWithReuseIdentifier(identifier, context: glassContext)
-		let plastic = testRecyclingCenter.dequeueObjectWithReuseIdentifier(identifier, context: plasticContext)
-		XCTAssert(glass as? Glass != nil && plastic as? Plastic != nil)
+		do {
+			let glass = try testRecyclingCenter.dequeueObjectWithReuseIdentifier(identifier, context: glassContext)
+			let plastic = try testRecyclingCenter.dequeueObjectWithReuseIdentifier(identifier, context: plasticContext)
+			XCTAssert(glass as? Glass != nil && plastic as? Plastic != nil)
+		}
+		catch let error {
+			XCTFail("\(error)")
+		}
 	}
 
 	/// An object initialized through a registered initHandler should be repeatedly dequeueable.

		testRecyclingCenter.registerInitHandler({ (context: Any?) -> RecyclableMaterial in
			return input
			}, forReuseIdentifier: input.identifier)
		let results = [
			testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier),
			testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier),
			testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier)
		]
		for object in results {
			XCTAssert(input == object)
		}
	}

	/// An initHandler must be registered for a reuse identifier before an object may be dequeued.
	/// TODO: Complete this test by declaring the possibility of an exception in `dequeueObjectWithReuseIdentifier(_:,_:)`
	func testPrematureDInitHandlerDequeueFailure() {
		//		let material = testRecyclingCenter.dequeueObjectWithReuseIdentifier(ReuseIdentifier.Unknown.rawValue)
		XCTFail()
	}

	/// An enqueued object should be dequeueable.

		testRecyclingCenter.registerInitHandler({ (context: Any?) -> RecyclableMaterial in
			return input
			}, forReuseIdentifier: input.identifier)
		do {
			let output = try testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier)
			XCTAssert(input == output)
		}
		catch let error {
			XCTFail("\(error)")
		}
	}

	// A registered initHandler should initialize objects based on the dequeue context.
