/** * Copyright (C) 2017 Jan Schäfer (jansch@users.sourceforge.net) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jskat.control.event; import static org.hamcrest.CoreMatchers.hasItems; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import org.jskat.AbstractJSkatTest; import org.jskat.control.event.skatgame.DiscardSkatEvent; import org.jskat.control.event.skatgame.PickUpSkatEvent; import org.jskat.data.SkatGameData; import org.jskat.util.Card; import org.jskat.util.CardList; import org.jskat.util.Player; import org.junit.Before; import org.junit.Test; public class DiscardSkatEventTest extends AbstractJSkatTest { private SkatGameData data; private PickUpSkatEvent pickUpSkatEvent; private DiscardSkatEvent event; private CardList dealtPlayerCards; private CardList dealtSkatCards; private CardList discardedCards; private CardList newPlayerCards; @Before public void setUp() { dealtPlayerCards = new CardList(Card.DA, Card.DT, Card.DK, Card.DQ, Card.DJ, Card.D9, Card.D8, Card.D7, Card.HA, Card.HT); dealtSkatCards = new CardList(Card.CJ, Card.SJ); discardedCards = new CardList(Card.DA, Card.HA); newPlayerCards = new CardList(Card.DT, Card.DK, Card.DQ, Card.DJ, Card.D9, Card.D8, Card.D7, Card.HT, Card.CJ, Card.SJ); data = new SkatGameData(); data.setDealtSkatCards(dealtSkatCards); data.addDealtCards(Player.FOREHAND, dealtPlayerCards); pickUpSkatEvent = new PickUpSkatEvent(Player.FOREHAND); pickUpSkatEvent.processForward(data); event = new DiscardSkatEvent(Player.FOREHAND, discardedCards); } @Test public void skatGameDataAfterEvent() { assertThat(data.getPlayerCards(Player.FOREHAND).size(), is(12)); assertThat(data.getSkat().size(), is(0)); event.processForward(data); assertThat(data.getPlayerCards(Player.FOREHAND).size(), is(10)); for (Card card : newPlayerCards) { assertTrue(data.getPlayerCards(Player.FOREHAND).contains(card)); } assertThat(data.getSkat().size(), is(2)); assertThat(data.getSkat(), hasItems(Card.DA, Card.HA)); } @Test public void skatGameDataBeforeEvent() { event.processForward(data); event.processBackward(data); assertThat(data.getPlayerCards(Player.FOREHAND).size(), is(12)); for (Card card : dealtPlayerCards) { assertTrue(data.getPlayerCards(Player.FOREHAND).contains(card)); } assertThat(data.getSkat().size(), is(0)); } }