package seng302.Data; import org.junit.Before; import org.junit.Test; import org.xml.sax.SAXException; import seng302.DataInput.RaceDataSource; import seng302.DataInput.RaceXMLReader; import seng302.DataInput.RegattaDataSource; import seng302.DataInput.RegattaXMLReader; import javax.xml.parsers.ParserConfigurationException; import java.io.IOException; import static junit.framework.TestCase.assertTrue; /** * Created by esa46 on 25/04/17. */ public class RegattaDataTest { private static final String ROOT_TAG = "RegattaConfig"; private static final String[] REQUIRED_TAGS = new String[]{ "RegattaID", "RegattaName", "CourseName", "CentralLatitude", "CentralLongitude", "CentralAltitude", "UtcOffset", "MagneticVariation" }; String result; RegattaDataSource regattaDataSource; @Before public void initReader() { try { regattaDataSource = new RegattaXMLReader("mockXML/regattaTest.xml"); RegattaData regattaData = new RegattaData(regattaDataSource); result = regattaData.createXML(); } catch (IOException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } } @Test public void xmlHasAllNecessaryFields() { assertTrue(result.contains("<" + ROOT_TAG + ">")); for (String tag : REQUIRED_TAGS) { System.out.println(tag); assertTrue(result.contains("<" + tag + ">") || result.contains("<" + tag + " ")); } } @Test public void allTagsAreTerminated() { for (String tag : REQUIRED_TAGS) { int lastIndex = 0; String openTag = "<" + tag + ">"; String closeTag = ""; while (lastIndex < result.length() && lastIndex > 0) { lastIndex = result.indexOf(openTag, lastIndex); if (lastIndex > 0) { lastIndex = result.indexOf(closeTag, lastIndex); assertTrue(lastIndex > 0); } } } } }