package org.atlasapi.persistence.media.entity; import static org.atlasapi.persistence.events.EventTranslatorTest.createEvent; import static org.junit.Assert.assertEquals; import java.util.List; import org.atlasapi.media.entity.*; import org.junit.Test; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.metabroadcast.common.ids.NumberToShortStringCodec; import com.metabroadcast.common.ids.SubstitutionTableNumberCodec; public class ContentTranslatorTest { private NumberToShortStringCodec idCodec = SubstitutionTableNumberCodec.lowerCaseOnly(); private final ContentTranslator translator = new ContentTranslator(idCodec); @Test public void testEventTranslation() { Event event = createEvent(ImmutableList.<Topic>of()); event.setId(1234l); List<Event> events = ImmutableList.of(event); Content content = createContentWithEvents(events); Content translated = translator.fromDBObject(translator.toDBObject(null, content), new Item()); EventRef translatedEvent = Iterables.getOnlyElement(translated.events()); assertEquals(event.getId(), translatedEvent.id()); } @Test public void testEventRefTranslation() { EventRef event = new EventRef(1234l, Publisher.BBC); List<EventRef> events = ImmutableList.of(event); Content content = createContentWithEventRefs(events); Content translated = translator.fromDBObject(translator.toDBObject(null, content), new Item()); EventRef translatedEvent = Iterables.getOnlyElement(translated.events()); assertEquals(event.id(), translatedEvent.id()); assertEquals(event.getPublisher(),translatedEvent.getPublisher()); } private Content createContentWithEventRefs(Iterable<EventRef> events) { Content content = new Item(); content.setDescription("some content"); content.setEventRefs(events); return content; } private Content createContentWithEvents(Iterable<Event> events) { Content content = new Item(); content.setDescription("some content"); content.setEvents(events); return content; } }