package com.brew.brewshop.xml; import android.test.InstrumentationTestCase; import com.brew.brewshop.R; import com.brew.brewshop.storage.recipes.HopAddition; import com.brew.brewshop.storage.recipes.Recipe; import junit.framework.TestCase; import java.io.File; import java.io.IOException; import java.util.Collections; /** * Created by doug on 05/12/14. */ public class BeerXMLTest extends InstrumentationTestCase { public void testReadWrite() { BeerXMLReader beerXMLReader = new BeerXMLReader(getInstrumentation().getTargetContext()); File externalFile = new File("/sdcard/test.xml"); if (!externalFile.exists()) { System.out.println("Couldn't find test file: " + externalFile.getAbsoluteFile()); return; } Recipe[] recipeList = null; try { recipeList = beerXMLReader.readFile(externalFile); } catch (Exception e) { e.printStackTrace(); fail("Exception when reading file: " + e.getMessage()); return; } Recipe recipeOne = recipeList[0]; BeerXMLWriter beerXMLWriter = new BeerXMLWriter(getInstrumentation().getTargetContext(), recipeList); try { beerXMLWriter.writeRecipes(new File(getInstrumentation().getTargetContext().getExternalCacheDir() + "/test.xml")); } catch (IOException ioe) { ioe.printStackTrace(); fail("Exception when writing file: " + ioe.getMessage()); return; } try { recipeList = beerXMLReader.readFile(new File(getInstrumentation().getTargetContext().getExternalCacheDir() + "/test.xml")); Recipe recipeTwo = recipeList[0]; verifyRecipes(recipeOne, recipeTwo); } catch (Exception e) { fail("Exception when reading back file: " + e.getMessage()); } } public void verifyRecipes(Recipe recipeOne, Recipe recipeTwo) { assertEquals(recipeOne.getBatchVolume(), recipeTwo.getBatchVolume()); assertEquals(recipeOne.getBoilTime(), recipeTwo.getBoilTime()); assertEquals(recipeOne.getBoilVolume(), recipeTwo.getBoilVolume()); assertEquals(recipeOne.getFg(), recipeTwo.getFg()); assertEquals(recipeOne.getOg(), recipeTwo.getOg()); assertEquals(recipeOne.getAbv(), recipeTwo.getAbv()); assertEquals(recipeOne.getEfficiency(), recipeTwo.getEfficiency()); assertEquals(recipeOne.getSrm(), recipeTwo.getSrm()); assertTrue(recipeOne.getStyle().equals(recipeTwo.getStyle())); assertTrue(recipeOne.getHops().size() == recipeTwo.getHops().size()); for (int i = 0; i < recipeOne.getHops().size(); i++) { assertTrue(recipeTwo.getHops().get(i).equals(recipeOne.getHops().get(i))); } assertTrue(recipeOne.getMalts().size() == recipeTwo.getMalts().size()); for (int i = 0; i < recipeOne.getMalts().size(); i++) { assertTrue(recipeOne.getMalts().get(i).equals(recipeTwo.getMalts().get(i))); } assertEquals(recipeOne.getYeast().size(), recipeTwo.getYeast().size()); for (int i = 0; i < recipeOne.getYeast().size(); i++) { assertTrue(recipeOne.getYeast().get(i).equals(recipeTwo.getYeast().get(i))); } } }