/**
* Copyright 2000-2006 DFKI GmbH.
* All Rights Reserved. Use is subject to license terms.
*
* This file is part of MARY TTS.
*
* MARY TTS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package marytts.datatypes;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.ByteArrayOutputStream;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.Locale;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.log4j.BasicConfigurator;
import org.junit.BeforeClass;
import org.junit.Test;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
public class MaryDataTest {
String textString = "Hallöchen Welt!";
String maryxmlString = "<maryxml version=\"0.4\"\n" + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+ "xmlns=\"http://mary.dfki.de/2002/MaryXML\" xml:lang=\"de\">\n" + "<s>\n" + "<t>\n" + "Willkommen\n" + "</t>\n"
+ "<t>\n" + "!\n" + "</t>\n" + "</s>\n" + "</maryxml>";
@BeforeClass
public static void setUp() throws Exception {
BasicConfigurator.configure();
}
@Test
public void testConstructor1() {
try {
MaryData md = new MaryData(null, Locale.GERMAN);
} catch (NullPointerException e) {
return;
}
fail();
}
@Test
public void testConstructor2() {
MaryData md = new MaryData(MaryDataType.RAWMARYXML, null, false);
assertTrue(md.getDocument() == null);
}
@Test
public void testConstructor3() {
MaryData md = new MaryData(MaryDataType.RAWMARYXML, null, true);
assertTrue(md.getDocument() != null);
}
@Test
public void testConstructor4() {
MaryData md = new MaryData(MaryDataType.RAWMARYXML, null, true);
assertTrue(md.getPlainText() == null);
}
@Test
public void testConstructor5() {
MaryData md = new MaryData(MaryDataType.RAWMARYXML, null, true);
assertTrue(md.getAudio() == null);
}
@Test
public void testConstructor6() {
MaryData md = new MaryData(MaryDataType.RAWMARYXML, null, true);
assertTrue(md.getData() instanceof Document);
}
@Test
public void testConstructor7() {
MaryData md = new MaryData(MaryDataType.TEXT, Locale.GERMAN, true);
assertTrue(md.getDocument() == null);
}
@Test
public void testConstructor8() {
MaryData md = new MaryData(MaryDataType.AUDIO, null, true);
assertTrue(md.getDocument() == null);
}
@Test
public void testConstructor9() {
MaryData md = new MaryData(MaryDataType.SSML, null, true);
assertTrue(md.getDocument() == null);
}
@Test
public void testTextRead1() throws Exception {
MaryData md = new MaryData(MaryDataType.TEXT, Locale.GERMAN);
md.setData(textString);
assertTrue(md.getPlainText().trim().equals(textString.trim()));
}
@Test
public void testTextWrite() throws Exception {
MaryData md = new MaryData(MaryDataType.TEXT, Locale.GERMAN);
md.setData(textString);
StringWriter sw = new StringWriter();
md.writeTo(sw);
assertTrue(sw.toString().trim().equals(textString.trim()));
}
@Test
public void testXMLRead1() throws Exception {
MaryData md = new MaryData(MaryDataType.TOKENS, Locale.GERMAN);
md.setData(maryxmlString);
assertTrue(md.getDocument() != null);
}
@Test
public void testXMLWrite() throws Exception {
MaryData md = new MaryData(MaryDataType.TOKENS, Locale.GERMAN);
md.setData(maryxmlString);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
md.writeTo(baos);
assertTrue(!baos.toString().equals(""));
}
@Test
public void testNamespace() throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder docBuilder = factory.newDocumentBuilder();
Document doc = docBuilder.parse(new InputSource(new StringReader(maryxmlString)));
assertNotNull(doc.getDocumentElement().getNamespaceURI());
Document doc2 = docBuilder.parse(this.getClass().getResourceAsStream("test1.maryxml"));
assertNotNull(doc2.getDocumentElement().getNamespaceURI());
}
}