import static org.junit.Assert.assertEquals;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import org.eclipselabs.e4.tapiji.translator.model.Glossary;
import org.eclipselabs.e4.tapiji.translator.model.Info;
import org.eclipselabs.e4.tapiji.translator.model.Term;
import org.eclipselabs.e4.tapiji.translator.model.Translation;
import org.junit.BeforeClass;
import org.junit.Test;
public class GlossaryTest {
private static final String GLOSSARY_XML = "./glossary-jaxb.xml";
private static Info info;
private static Glossary glossary;
private static Term term2;
@BeforeClass
public static void setup() {
info = Info.create();
info.translations = new ArrayList<String>();
info.translations.add("default");
info.translations.add("de");
info.translations.add("en");
// Hello world
final Term term = Term.newInstance();
term.translations.add(Translation.create("default", "Hallo Welt!"));
term.translations.add(Translation.create("de", "Hallo Welt!"));
term.translations.add(Translation.create("en", "Hello World!"));
term.parentTerm = null;
// Hello world 2
final Term subTerms = Term.newInstance();
subTerms.translations.add(Translation.create("default", "Hallo Welt!"));
subTerms.translations.add(Translation.create("de", "Hallo Welt!"));
subTerms.translations.add(Translation.create("en", "Hello World!"));
term.subTerms.add(subTerms);
// Hello World 3
term2 = Term.newInstance();
term2.translations.add(Translation.create("default", "Hallo Welt!"));
term2.translations.add(Translation.create("de", "Hallo Welt!"));
term2.translations.add(Translation.create("en", "Hello World!"));
term2.parentTerm = null;
glossary = new Glossary();
glossary.info = info;
glossary.terms.add(term);
glossary.terms.add(term2);
}
@Test
public void writeGlossaryToFileTest() throws JAXBException, IOException {
final JAXBContext context = JAXBContext.newInstance(Glossary.class);
final Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(glossary, new FileWriter(GLOSSARY_XML));
}
@Test
public void readGlossaryFromFileTest() throws JAXBException, IOException {
final JAXBContext context = JAXBContext.newInstance(Glossary.class);
final Unmarshaller unMarshaller = context.createUnmarshaller();
final Glossary loadedGlossary = (Glossary) unMarshaller.unmarshal(new FileReader(GLOSSARY_XML));
assertEquals(loadedGlossary.toString(), "hello world");
}
@Test
public void termSizeTest() {
assertEquals(glossary.getAllTerms().length, 2);
}
}