### Question:
ReflectionMaterialRules implements MaterialRules { public MagicalMaterial getDefault(CharacterType characterType) { CharacterTypeMaterialRules rules = map.getForCharacterType(characterType); return rules.getDefault(); } ReflectionMaterialRules(ObjectFactory objectFactory); MagicalMaterial getDefault(CharacterType characterType); ArtifactAttuneType[] getAttunementTypes(CharacterType characterType,
                                                 MagicalMaterial material); boolean canAttuneToMalfeanMaterials(CharacterType characterType);  }### Answer:
@Test public void knowsDefaultRulesForCharacterTypes() { factory.add(CharacterTypeMaterialRules.class, new DummyMaterialRules(Adamant)); CharacterType type = mock(CharacterType.class); when(type.getId()).thenReturn(ID_TEST_TYPE); MagicalMaterial result = new ReflectionMaterialRules(factory).getDefault(type); assertThat(result, is(Adamant)); }