import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
import org.eclipse.e4.core.contexts.EclipseContextFactory;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipselabs.e4.tapiji.logger.Log;
import org.eclipselabs.e4.tapiji.translator.core.api.IGlossaryService;
import org.eclipselabs.e4.tapiji.translator.core.internal.GlossaryManager;
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 final class GlossaryManagerTest {
private static final String TAG = GlossaryManagerTest.class.getSimpleName();
private Info info;
private Term term;
private Term term2;
private static IGlossaryService glossaryService;
@BeforeClass
public static void setup() {
final IEclipseContext context = EclipseContextFactory.create();
context.set(IEventBroker.class, new EventBrokerMock());
glossaryService = ContextInjectionFactory.make(GlossaryManager.class, context);
}
private void initializeTestData() {
info = Info.create();
info.translations = new ArrayList<String>();
info.translations.add("default");
// Hello world
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;
term2 = Term.newInstance();
term2.translations.add(Translation.create("default", "Welt!"));
term2.translations.add(Translation.create("de", "Welt!"));
term2.translations.add(Translation.create("en", "World!"));
term2.parentTerm = null;
final Glossary glossary = new Glossary();
glossary.info = info;
glossary.terms.add(term);
glossary.terms.add(term2);
glossaryService.updateGlossary(glossary);
}
@Test
public void addTermTest() {
initializeTestData();
Log.d(TAG, glossaryService.getGlossary().toString());
assertEquals(2, glossaryService.getGlossary().terms.size());
}
@Test
public void removeTermTest() {
initializeTestData();
glossaryService.removeTerm(term);
assertEquals(1, glossaryService.getGlossary().terms.size());
glossaryService.removeTerm(term);
assertEquals(1, glossaryService.getGlossary().terms.size());
glossaryService.removeTerm(term2);
assertEquals(0, glossaryService.getGlossary().terms.size());
assertEquals(0, glossaryService.getGlossary().terms.size());
}
@Test
public void evictGlossary() {
initializeTestData();
glossaryService.evictGlossary();
assertEquals(0, glossaryService.getGlossary().terms.size());
assertEquals("Default", glossaryService.getGlossary().info.getTranslations()[0]);
}
@Test
public void saveGlossaryTest() {
}
@Test
public void loadGlossaryTest() {
}
}