Exemplo n.º 1
0
    def test_casting_spell_raises_spirit_changed_event(self):
        """
        Since casting spells uses spirit, an appropriate event should be raised
        """
        spell = SpellBuilder().with_spirit(10).build()

        caster = CharacterBuilder().with_spirit(20).build()

        listener = EventListener()
        caster.register_for_updates(listener)

        effects_factory = mock()

        action = SpellCastingAction(caster=caster, spell=spell, effects_factory=effects_factory)
        action.execute()

        events = [event for event in listener.events if e_event_type(event) == "spirit points changed"]

        assert_that(len(events), is_(equal_to(1)))