Changeset 37529 for lang/csharp

Show
Ignore:
Timestamp:
05/14/10 21:48:57 (3 years ago)
Author:
isaisstillalive
Message:
  • よく利用される「サプライから条件で選んで取得」をメソッド化
Location:
lang/csharp/DominionEngine
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/csharp/DominionEngine/DominionEngine.CardInfo.Test/DDL/AnyPlayerTest.cs

    r37507 r37529  
    306306        } 
    307307 
     308        [Test] 
     309        public void Gain_WithFilter([Range(0, 5)] int player) 
     310        { 
     311            AnyPlayer anyPlayer = new AnyPlayer(player); 
     312 
     313            Card card = new Card<Copper>(CardPosition.Supply); 
     314 
     315            AnyPlayer.ChoosingEventArgs choosingArgs = null; 
     316            AnyPlayer.Choosing += (sender, e) => 
     317            { 
     318                choosingArgs = e; 
     319                e.Result = new []{ card }; 
     320            }; 
     321 
     322            Card.MovingEventArgs movingArgs = null; 
     323            Card.Moving += (sender, e) => 
     324            { 
     325                movingArgs = e; 
     326            }; 
     327 
     328            Func<ICardInfo, bool> filter = cardinfo => cardinfo is Copper; 
     329            anyPlayer.Gain(filter); 
     330 
     331            Assert.That(choosingArgs.Filter, Is.EqualTo(filter)); 
     332            Assert.That(choosingArgs.From, Is.EqualTo(CardPosition.Supply)); 
     333            Assert.That(choosingArgs.MaxQuantity, Is.EqualTo(1)); 
     334            Assert.That(choosingArgs.MinQuantity, Is.EqualTo(1)); 
     335 
     336            Assert.That(movingArgs.From, Is.SameAs(card)); 
     337            Assert.That(movingArgs.ToPosition, Is.EqualTo(CardPosition.Discard(player))); 
     338        } 
     339 
    308340        #endregion 
    309341    } 
  • lang/csharp/DominionEngine/DominionEngine.CardInfo/DDL/AnyPlayer.cs

    r37523 r37529  
    419419 
    420420        /// <summary> 
     421        /// サプライから選んで取得する 
     422        /// </summary> 
     423        /// <param name="filter">フィルタ</param> 
     424        public void Gain(Func<ICardInfo, bool> filter) 
     425        { 
     426            var card = Choose(CardPosition.Supply, filter); 
     427            Gain(card); 
     428        } 
     429 
     430        /// <summary> 
    421431        /// 手札に取得する 
    422432        /// </summary>