def test_get_unit_by_name(self):
        dungeon_model = self._get_dungeon_model()
        with LogCapture():
            logger = logging.getLogger()
            dungeon = Dungeon(dungeon=dungeon_model,
                              announcer={},
                              log=logger)

        unit_name = "quux"

        unit_generator = UnitGenerator()
        unit = unit_generator.generate(unit_name=unit_name)

        dungeon.add_unit(unit)

        self.assertTrue(len(dungeon.units), 0)

        # test exact match
        actual = dungeon.get_unit_by_name(unit_name)
        self.assertIsInstance(actual, Unit)

        # test invalid match
        actual = dungeon.get_unit_by_name("foo")
        self.assertIsNone(actual)

        # test case sensitivity
        actual = dungeon.get_unit_by_name(unit_name.upper())
        self.assertIsInstance(actual, Unit)

        # test startswith
        actual = dungeon.get_unit_by_name(unit_name[0:1])
        self.assertIsInstance(actual, Unit)