         let routeWasHandled = router.evaluateURLString("scheme://walmart.com")
         XCTAssertFalse(routeWasHandled)
     }
-}
+    
+    func test_evaluateURLString_returnsFalseForBadURLL() {
+        let router = Router()
+        
+        let routeWasHandled = router.evaluateURLString("      ")
+        XCTAssertFalse(routeWasHandled)
+    }
+}
+
+// MARK: - processing Tests
+
+extension RouterTests {
+    func test_processing_returnsFalseWhenNoRoutesAreInFlight() {
+        let router = Router()
+        let processing = router.processing
+        
+        XCTAssertFalse(processing)
+    }
+}
+
+// MARK: - serializedRoute Tests
+
+extension RouterTests {
+    func test_serializedRoute_dismissesPresentedViewController() {
+        // TODO: fix this test. failing because UIViewController is being presented in a view that is not
+        // part of the view hiearchy
+        let router = Router()
+        let navigator = MockNavigator()
+        router.navigator = navigator
+        let viewController = UIViewController(nibName: nil, bundle: nil)
+        navigator.testNavigationController?.topViewController?.presentViewController(viewController, animated: false, completion: nil)
+        
+        XCTAssertNotNil(navigator.testNavigationController?.topViewController?.presentedViewController)
+
+        router.serializedRoute([], components: [], animated: false)
+        
+        XCTAssertNil(navigator.testNavigationController?.topViewController?.presentedViewController)
+    }
+}

// MARK: - routesForComponents Tests

extension RouterTests {
    func test_routesForComponents() {
        // TODO: implement tests
        XCTFail("routesForComponents test not implemented")
    }
}


        XCTAssertFalse(routeWasHandled)
    }
    
    func test_evaluateURL_returnsFalseForBadURL() {
        let router = Router()
        let url = NSURL(string: "::")!
        
        let routeWasHandled = router.evaluateURL(url)
        XCTAssertFalse(routeWasHandled)
    }
    
    func test_evaluateURL_executesActionWithMultipleURLComponents() {
        let router = Router()
        let handlerExpectation = expectationWithDescription("route handler should run")
