package org.atlasapi.persistence.media.entity; import junit.framework.TestCase; import org.atlasapi.media.entity.Broadcast; import org.atlasapi.media.entity.Encoding; import org.atlasapi.media.entity.Publisher; import org.atlasapi.media.entity.Restriction; import org.atlasapi.media.entity.Version; import org.joda.time.Duration; import com.metabroadcast.common.ids.SubstitutionTableNumberCodec; import com.metabroadcast.common.time.Clock; import com.metabroadcast.common.time.SystemClock; import com.mongodb.DBObject; public class VersionTranslatorTest extends TestCase { private final Clock clock = new SystemClock(); VersionTranslator vt = new VersionTranslator(new SubstitutionTableNumberCodec()); public void testFromVersion() throws Exception { Version version = new Version(); version.setDuration(Duration.standardSeconds(2)); version.setProvider(Publisher.C4); DBObject dbObject = vt.toDBObject(null, version); assertEquals(version.getDuration(), dbObject.get("duration")); assertEquals(version.getProvider().key(), dbObject.get("provider")); } public void testToVersion() throws Exception { Version version = new Version(); version.setDuration(Duration.standardSeconds(2)); version.setPublishedDuration(1); version.setProvider(Publisher.BBC); Broadcast broadcast = new Broadcast("channel", clock.now(), Duration.standardSeconds(1)); broadcast.setCanonicalUri("uri"); version.addBroadcast(broadcast); Encoding encoding = new Encoding(); encoding.setAudioChannels(1); encoding.setBitRate(2); version.addManifestedAs(encoding); Restriction restriction = new Restriction(); restriction.setRestricted(true); restriction.setMinimumAge(15); restriction.setMessage("text"); version.setRestriction(restriction); DBObject dbObject = vt.toDBObject(null, version); Version v = vt.fromDBObject(dbObject, null); assertEquals(version.getDuration(), v.getDuration()); assertEquals(version.getPublishedDuration(), v.getPublishedDuration()); assertEquals(version.getProvider(), v.getProvider()); Broadcast b = v.getBroadcasts().iterator().next(); assertEquals(broadcast.getBroadcastDuration(), b.getBroadcastDuration()); Encoding e = v.getManifestedAs().iterator().next(); assertEquals(encoding.getAudioChannels(), e.getAudioChannels()); assertEquals(encoding.getBitRate(), e.getBitRate()); Restriction r = v.getRestriction(); assertEquals(restriction.isRestricted(), r.isRestricted()); assertEquals(restriction.getMinimumAge(), r.getMinimumAge()); assertEquals(restriction.getMessage(), r.getMessage()); } }