package games.strategy.engine.data.gameparser;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import java.util.Optional;
import org.junit.Before;
import org.junit.Test;
import games.strategy.engine.data.IAttachment;
import games.strategy.engine.delegate.IDelegate;
import games.strategy.triplea.attachments.CanalAttachment;
import games.strategy.triplea.delegate.BattleDelegate;
/**
* Simple test of XmlGameElementMapper to verify error handling and a quick check of the happy case.
*/
public class XmlGameElementMapperTest {
private static final String NAME_THAT_DOES_NOT_EXIST = "this is surely not a valid identifier";
private XmlGameElementMapper testObj;
@Before
public void setup() {
testObj = new XmlGameElementMapper();
}
@Test
public void getDelegateReturnsEmptyIfDelegateNameDoesNotExist() {
Optional<IDelegate> resultObject = testObj.getDelegate(NAME_THAT_DOES_NOT_EXIST);
assertThat(resultObject.isPresent(), is(false));
}
@Test
public void getDelegateHappyCase() {
Optional<IDelegate> resultObject = testObj.getDelegate(XmlGameElementMapper.BATTLE_DELEGATE_NAME);
assertThat(resultObject.isPresent(), is(true));
assertThat(resultObject.get(), instanceOf(BattleDelegate.class));
}
@Test
public void getAttachmentReturnsEmptyIfAttachmentNameDoesNotExist() {
Optional<IAttachment> resultObject = testObj.getAttachment(NAME_THAT_DOES_NOT_EXIST, "", null, null);
assertThat(resultObject.isPresent(), is(false));
}
@Test
public void getAttachmentHappyCase() {
Optional<IAttachment> resultObject =
testObj.getAttachment(XmlGameElementMapper.CANAL_ATTACHMENT_NAME, "", null, null);
assertThat(resultObject.isPresent(), is(true));
assertThat(resultObject.get(), instanceOf(CanalAttachment.class));
}
}