/* * File: DocumentFieldConcatenatorTest.java * Authors: Justin Basilico * Company: Sandia National Laboratories * Project: Cognitive Foundry Text Core * * Copyright February 01, 2011, Sandia Corporation. * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive * license for use of this work by or on behalf of the U.S. Government. Export * of this program may require a license from the United States Government. */ package gov.sandia.cognition.text.convert; import gov.sandia.cognition.text.document.AbstractDocument; import gov.sandia.cognition.text.document.DefaultDocument; import gov.sandia.cognition.text.document.DefaultTextField; import java.util.ArrayList; import java.util.LinkedList; import java.util.Arrays; import gov.sandia.cognition.text.Textual; import java.util.List; import org.junit.Test; import static org.junit.Assert.*; /** * Unit tests for class DocumentFieldConcatenator. * * @author Justin Basilico * @since 3.1 */ public class DocumentFieldConcatenatorTest { /** * Creates a new test. */ public DocumentFieldConcatenatorTest() { } /** * Test of constructors of class DocumentFieldConcatenator. */ @Test public void testConstructors() { String fieldSeparator = DocumentFieldConcatenator.DEFAULT_FIELD_SEPARATOR; DocumentFieldConcatenator instance = new DocumentFieldConcatenator(); assertTrue(instance.getFieldNames().isEmpty()); assertSame(fieldSeparator, instance.getFieldSeparator()); List<String> fieldNames = Arrays.asList("a", "b"); fieldSeparator = "|"; instance = new DocumentFieldConcatenator(fieldNames, fieldSeparator); assertSame(fieldNames, instance.getFieldNames()); assertSame(fieldSeparator, instance.getFieldSeparator()); } /** * Test of evaluate method, of class DocumentFieldConcatenator. */ @Test public void testEvaluate() { DefaultDocument document = new DefaultDocument(); document.setBody("example body"); document.setTitle("Example Title"); document.setAuthor("example author"); document.addField(new DefaultTextField("other", "example other")); DocumentFieldConcatenator instance = new DocumentFieldConcatenator(); instance.getFieldNames().add(AbstractDocument.TITLE_FIELD_NAME); Textual result = instance.evaluate(document); assertEquals("Example Title", result.getText()); instance.getFieldNames().add(AbstractDocument.BODY_FIELD_NAME); result = instance.evaluate(document); assertEquals("Example Title\nexample body", result.getText()); instance.getFieldNames().add("other"); instance.setFieldSeparator("|"); result = instance.evaluate(document); assertEquals("Example Title|example body|example other", result.getText()); instance.getFieldNames().add("none"); result = instance.evaluate(document); assertEquals("Example Title|example body|example other|", result.getText()); result = instance.evaluate(null); assertEquals(null, result); } /** * Test of getFieldNames method, of class DocumentFieldConcatenator. */ @Test public void testGetFieldNames() { this.testSetFieldNames(); } /** * Test of setFieldNames method, of class DocumentFieldConcatenator. */ @Test public void testSetFieldNames() { List<String> fieldNames = null; DocumentFieldConcatenator instance = new DocumentFieldConcatenator(); assertTrue(instance.getFieldNames().isEmpty()); fieldNames = new LinkedList<String>(); instance.setFieldNames(fieldNames); assertSame(fieldNames, instance.getFieldNames()); fieldNames = Arrays.asList("a", "b"); instance.setFieldNames(fieldNames); assertSame(fieldNames, instance.getFieldNames()); fieldNames = null; instance.setFieldNames(fieldNames); assertSame(fieldNames, instance.getFieldNames()); fieldNames = new ArrayList<String>(); fieldNames.add("field"); instance.setFieldNames(fieldNames); assertSame(fieldNames, instance.getFieldNames()); } /** * Test of getFieldSeparator method, of class DocumentFieldConcatenator. */ @Test public void testGetFieldSeparator() { this.testSetFieldSeparator(); } /** * Test of setFieldSeparator method, of class DocumentFieldConcatenator. */ @Test public void testSetFieldSeparator() { String fieldSeparator = DocumentFieldConcatenator.DEFAULT_FIELD_SEPARATOR; DocumentFieldConcatenator instance = new DocumentFieldConcatenator(); assertSame(fieldSeparator, instance.getFieldSeparator()); fieldSeparator = " "; instance.setFieldSeparator(fieldSeparator); assertSame(fieldSeparator, instance.getFieldSeparator()); fieldSeparator = ""; instance.setFieldSeparator(fieldSeparator); assertSame(fieldSeparator, instance.getFieldSeparator()); fieldSeparator = null; instance.setFieldSeparator(fieldSeparator); assertSame(fieldSeparator, instance.getFieldSeparator()); fieldSeparator = "\n"; instance.setFieldSeparator(fieldSeparator); assertSame(fieldSeparator, instance.getFieldSeparator()); } }