package com.hdweiss.morgand.test; import android.test.AndroidTestCase; import com.hdweiss.morgand.synchronizer.writer.OrgFileWriter; import junit.framework.Assert; import java.util.ArrayList; public class OrgFileWriterTests extends AndroidTestCase { private OrgFileWriter writer; private OrgFileTestScenario scenario; @Override protected void setUp() throws Exception { super.setUp(); scenario = new OrgFileTestScenario(); ArrayList<String> fileCopy = new ArrayList<String>(scenario.file); writer = new OrgFileWriter(fileCopy); } public void testDeleteHeading() { writer.delete(scenario.heading); Assert.assertEquals(debugString(), 2, writer.fileContent.size()); } public void testOverwriteSubheading() { OrgNodeStubbed subheading = scenario.subheading; subheading.title = "** new title"; writer.overwrite(subheading); Assert.assertEquals(debugString(), scenario.file.size(), writer.fileContent.size()); String writtenLine = writer.fileContent.get(subheading.lineNumber - 1); Assert.assertEquals(debugString(), subheading.title, writtenLine); } public void testOverwriteContent() { OrgNodeStubbed content = scenario.content; content.title = "test"; writer.overwrite(content); Assert.assertEquals(debugString(), scenario.file.size() - 1, writer.fileContent.size()); String writtenLine = writer.fileContent.get(content.lineNumber - 1); Assert.assertEquals(debugString(), content.title, writtenLine); } public void testAddSubheading() { OrgNodeStubbed parent = scenario.heading; OrgNodeStubbed child = new OrgNodeStubbed(-1); child.title = "** added child"; child.parent = parent; writer.add(child); Assert.assertEquals(debugString(), scenario.file.size() + 1, writer.fileContent.size()); int expectedIndex = scenario.heading2.lineNumber - 2; String writtenLine = writer.fileContent.get(expectedIndex); Assert.assertEquals(debugString(), child.title, writtenLine); } private String debugString() { String message = "Before:\n" + scenario.file.toString() + "\nAfter:\n" + writer.fileContent.toString(); return message; } }