     }
     
     func testTypeRegistrationAndResolution() {
-        
-    }
-}
+        let name = UUID()
+        _ = Guise.register(type: Controlling.self, for: Controller.self, name: name)
+        XCTAssertNotNil(Guise.resolve(type: Controlling.self, name: name))
+    }
+}

        let metafilter: Metafilter<Int> = { $0 >= 3 }
        let keys = Guise.filter(type: Animal.self, metafilter: metafilter)
        let animals = Guise.resolve(keys: keys) as [Key<Animal>: Animal]
        // The registration of the integer 7 above is skipped, because it is not an Animal.
        XCTAssertEqual(2, animals.count)
    }
    
    func testResolutionByKey() {
        let key = Guise.register(instance: Dog(name: "Lucy"))
        XCTAssertNotNil(Guise.resolve(key: key) as Dog?)
    }
    
    func testResolutionsWithKeysOfIncorrectTypeAreSkipped() {

        let keys = Guise.filter(metafilter: metafilter)
        // We get back two keys, but they resolve disparate types.
        XCTAssertEqual(2, keys.count)
        let humans = Guise.resolve(keys: Set(keys.flatMap{ Key($0) })) as [Human]
        // Because we are resolving Humans, not Dogs, Brian Griffin is skipped.
        XCTAssertEqual(1, humans.count)
    }
