| | 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 | |