Log in Help
Print
Homegatewikicowtestunitgateyamformat 〉 YamFormatterTests.java
 
/*
 * YamFormatterTest.java Copyright (c) 1998-2008, The University of Sheffield.
 * 
 * This code is from the GATE project (http://gate.ac.uk/) and is free software
 * licenced under the GNU General Public License version 3. It is distributed
 * without any warranty. For more details see COPYING.txt in the top level
 * directory (or at http://gatewiki.sf.net/COPYING.txt).
 * 
 * Hamish Cunningham, 25 August 2009
 */

package gate.yam.format;

import java.io.*;
import junit.framework.*;
import org.apache.log4j.Logger;
import org.springframework.core.io.*;
import org.springframework.context.support.*;
import gate.util.*;
import gate.yam.*;
import gate.yam.parse.*;
import gate.yam.translate.*;
import gate.yam.convert.*;
import gate.yam.format.*;

/**
 * Unit test for the YamFile class.
 */
public class YamFormatterTests extends TestCase {

  /** Create the test case */
  public YamFormatterTests(String testName) {
    super(testName);
  }

  /** Logger */
  static Logger log = Logger.getLogger("gate.yam.format.YamFormatterTests");

  /**
   * Test word wrapping.
   */
  public void testWrapping() throws Exception {
    log.info("==== testWrapping... =======================");

    String testInName = "/gate/yam/resources/formatter-test-in.txt";
    String testOutName = "/gate/yam/resources/formatter-test-out.txt";

    // input to test on
    String testInFilePath = this.getClass().getResource(testInName).getPath();

    // output to compare with
    String testOutFilePath = this.getClass().getResource(testOutName).getPath();

    BufferedReader textReader = null;
    StringBuilder inputText = new StringBuilder();
    StringBuilder toCompareWith = new StringBuilder();

    try {
      // reading the input text
      textReader = new BufferedReader(new FileReader(testInFilePath));
      String line = textReader.readLine();
      while(line != null) {
        inputText.append(line);
        line = textReader.readLine();
        if(line != null) inputText.append("\n");
      }
      textReader.close();

      // reading the text to compare with
      textReader = new BufferedReader(new FileReader(testOutFilePath));
      line = textReader.readLine();
      while(line != null) {
        toCompareWith.append(line);
        line = textReader.readLine();
        if(line != null) toCompareWith.append("\n");
      }
    } finally {
      if(textReader != null) textReader.close();
    }

    // test one
    int test1Start = inputText.indexOf("#test1#") + 8; // length + \n
    int test1End = inputText.indexOf("#test1-end#") - 1; // \n
    YamFormatter.wrap(inputText, test1Start, test1End, 0, 78, 0, 0);

    // test two (unordered list item)
    int test2Start = inputText.indexOf("#test2#") + 8; // length + \n
    int test2End = inputText.indexOf("#test2-end#") - 1; // \n
    YamFormatter.wrap(inputText, test2Start, test2End, 4, 78, 0, 0);

    // test three (tab test)
    int test3Start = inputText.indexOf("#test3#") + 8; // length + \n
    int test3End = inputText.indexOf("#test3-end#") - 1; // \n
    YamFormatter.wrap(inputText, test3Start, test3End, 4, 78, 0, 0);

    // compare strings
    assertEquals(inputText.toString(), toCompareWith.toString());

    log.info("====================================");
  } // testWrapping()
} // YamFormatterTests