public void CannotAddSameAbilityTwice()
        {
            Actor    actor = new Actor();
            IAbility one   = new AbilityA();
            IAbility two   = new AbilityA();

            actor.Can(one);
            actor.Invoking(a => a.Can(two)).Should().Throw <System.ArgumentException>();
        }
        public void UsingAvailableAbility()
        {
            Actor    actor = new Actor();
            IAbility a     = new AbilityA();
            IAbility b     = new AbilityB();

            actor.Can(a);
            actor.Can(b);

            actor.Using <AbilityA>().Should().BeSameAs(a);
            actor.Using <AbilityB>().Should().BeSameAs(b);
        }