package org.atlasapi.persistence.media.entity;
import junit.framework.TestCase;
import org.atlasapi.media.entity.Encoding;
import org.atlasapi.media.entity.Location;
import org.atlasapi.media.entity.Quality;
import com.metabroadcast.common.media.MimeType;
import com.metabroadcast.common.persistence.MongoTestHelper;
import com.metabroadcast.common.persistence.mongo.MongoConstants;
import com.metabroadcast.common.persistence.mongo.MongoQueryBuilder;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
public class EncodingTranslatorTest extends TestCase {
private final EncodingTranslator ent = new EncodingTranslator();
public void testFromEncoding() throws Exception {
Encoding encoding = new Encoding();
encoding.setAudioBitRate(1);
encoding.setContainsAdvertising(true);
encoding.setVideoFrameRate(1.0F);
encoding.setAudioDescribed(true);
encoding.setSigned(true);
encoding.setSubtitled(true);
encoding.setQuality(Quality.SD);
encoding.setQualityDetail("quality_detail");
DBObject dbObject = ent.toDBObject(null, encoding);
assertEquals(encoding.getAudioBitRate(), dbObject.get("audioBitRate"));
assertEquals(encoding.getContainsAdvertising(), dbObject.get("containsAdvertising"));
assertEquals(encoding.getVideoFrameRate(), dbObject.get("videoFrameRate"));
assertEquals(encoding.getAudioDescribed(), dbObject.get("audioDescribed"));
assertEquals(encoding.getSigned(), dbObject.get("signed"));
assertEquals(encoding.getSubtitled(), dbObject.get("subtitled"));
assertEquals(encoding.getQuality().toString().toLowerCase(), dbObject.get("quality"));
assertEquals(encoding.getQualityDetail(), dbObject.get("qualityDetail"));
}
public void testToEncoding() throws Exception {
MongoTestHelper.ensureMongoIsRunning();
DBCollection collection = MongoTestHelper.anEmptyTestDatabase().collection("test");
Encoding encoding = new Encoding();
encoding.setAudioBitRate(1);
encoding.setContainsAdvertising(true);
encoding.setVideoFrameRate(1.0F);
encoding.setAdvertisingDuration(1);
encoding.setAudioChannels(1);
encoding.setAudioCoding(MimeType.AUDIO_3GPP);
encoding.setBitRate(1);
encoding.setDataContainerFormat(MimeType.VIDEO_H264);
encoding.setDataSize(1L);
encoding.setDistributor("dis");
encoding.setHasDOG(true);
encoding.setSource("source");
encoding.setVideoAspectRatio("ar");
encoding.setVideoBitRate(2);
encoding.setVideoCoding(MimeType.VIDEO_H263);
encoding.setVideoFrameRate(2.0F);
encoding.setVideoHorizontalSize(1);
encoding.setVideoProgressiveScan(true);
encoding.setVideoVerticalSize(2);
encoding.setAudioDescribed(true);
encoding.setSigned(true);
encoding.setSubtitled(false);
encoding.setHighDefinition(true);
Location location = new Location();
location.setCanonicalUri("uri");
location.setUri("uri");
encoding.addAvailableAt(location);
DBObject dbObject = ent.toDBObject(null, encoding);
dbObject.put(MongoConstants.ID, "test");
collection.save(dbObject);
Encoding enc = ent.fromDBObject(collection.findOne(new MongoQueryBuilder().idEquals("test").build()), null);
assertEquals(encoding.getAudioBitRate(), enc.getAudioBitRate());
assertEquals(encoding.getContainsAdvertising(), enc.getContainsAdvertising());
assertEquals(encoding.getVideoFrameRate(), enc.getVideoFrameRate());
assertEquals(encoding.getAdvertisingDuration(), enc.getAdvertisingDuration());
assertEquals(encoding.getAudioChannels(), enc.getAudioChannels());
assertEquals(encoding.getAudioCoding(), enc.getAudioCoding());
assertEquals(encoding.getBitRate(), enc.getBitRate());
assertEquals(encoding.getDataContainerFormat(), enc.getDataContainerFormat());
assertEquals(encoding.getDataSize(), enc.getDataSize());
assertEquals(encoding.getDistributor(), enc.getDistributor());
assertEquals(encoding.getHasDOG(), enc.getHasDOG());
assertEquals(encoding.getSource(), enc.getSource());
assertEquals(encoding.getVideoAspectRatio(), enc.getVideoAspectRatio());
assertEquals(encoding.getVideoBitRate(), enc.getVideoBitRate());
assertEquals(encoding.getVideoCoding(), enc.getVideoCoding());
assertEquals(encoding.getVideoFrameRate(), enc.getVideoFrameRate());
assertEquals(encoding.getVideoHorizontalSize(), enc.getVideoHorizontalSize());
assertEquals(encoding.getVideoProgressiveScan(), enc.getVideoProgressiveScan());
assertEquals(encoding.getVideoVerticalSize(), enc.getVideoVerticalSize());
assertEquals(encoding.getAudioDescribed(), enc.getAudioDescribed());
assertEquals(encoding.getSigned(), enc.getSigned());
assertEquals(encoding.getSubtitled(), enc.getSubtitled());
assertEquals(encoding.getHighDefinition(), enc.getHighDefinition());
Location l = enc.getAvailableAt().iterator().next();
assertEquals(location.getCanonicalUri(), l.getCanonicalUri());
assertEquals(location.getUri(), l.getUri());
}
}