package org.atlasapi.persistence.media.entity; import java.util.List; import java.util.Set; import junit.framework.TestCase; import org.atlasapi.media.entity.Brand; import org.atlasapi.media.entity.Container; import org.atlasapi.media.entity.ParentRef; import org.atlasapi.media.entity.Publisher; import org.atlasapi.media.entity.Series; import com.google.common.collect.Sets; import com.metabroadcast.common.ids.SubstitutionTableNumberCodec; import com.metabroadcast.common.time.SystemClock; import com.mongodb.DBObject; public class ContainerTranslatorTest extends TestCase { ContainerTranslator bt = new ContainerTranslator(new SubstitutionTableNumberCodec()); @SuppressWarnings("unchecked") public void testFromBrand() throws Exception { Brand brand = new Brand("canonicalUri", "curie", Publisher.BBC); brand.setFirstSeen(new SystemClock().now()); Set<String> genres = Sets.newHashSet(); genres.add("genre"); brand.setGenres(genres); DBObject obj = bt.toDBObject(null, brand); assertEquals("canonicalUri", obj.get(IdentifiedTranslator.ID)); List<String> i = (List<String>) obj.get("genres"); assertEquals(1, i.size()); for (String genre: i) { brand.getGenres().contains(genre); } } public void testToBrand() throws Exception { Brand brand = new Brand("canonicalUri", "curie", Publisher.BBC); brand.setFirstSeen(new SystemClock().now()); brand.setLastFetched(new SystemClock().now()); Set<String> genres = Sets.newHashSet(); genres.add("genres"); brand.setGenres(genres); DBObject obj = bt.toDBObject(null, brand); Container b = bt.fromDBObject(obj, null); assertEquals(brand.getCanonicalUri(), b.getCanonicalUri()); assertEquals(brand.getFirstSeen(), b.getFirstSeen()); assertEquals(brand.getLastFetched(), b.getLastFetched()); Set<String> g = brand.getGenres(); assertEquals(1, g.size()); for (String genre: g) { assertTrue(genres.contains(genre)); } } public void testEncodeDecodeSeries() { Series series = new Series("testUri", "testCurie", Publisher.BBC); series.setParentRef(new ParentRef("testParent")); series.withSeriesNumber(5); series.setTotalEpisodes(5); DBObject encoded = bt.toDB(series); Series fromDBObject = (Series) bt.fromDBObject(encoded, null); assertEquals(series.getParent(), fromDBObject.getParent()); assertEquals(series.getSeriesNumber(), fromDBObject.getSeriesNumber()); assertEquals(series.getTotalEpisodes(), fromDBObject.getTotalEpisodes()); } }