package org.atlasapi.persistence.media.entity;
import org.atlasapi.media.entity.Alias;
import org.atlasapi.media.entity.BlackoutRestriction;
import org.atlasapi.media.entity.Broadcast;
import com.metabroadcast.common.time.SystemClock;
import com.mongodb.DBObject;
import junit.framework.TestCase;
import org.joda.time.Duration;
import org.joda.time.LocalDate;
public class BroadcastTranslatorTest extends TestCase {
BroadcastTranslator brt = new BroadcastTranslator();
SystemClock clock = new SystemClock();
public void testFromBroadcast() {
Broadcast broadcast = new Broadcast("on", clock.now(), Duration.standardSeconds(1));
broadcast.setBlackoutRestriction(new BlackoutRestriction(true));
DBObject dbObject = brt.toDBObject(broadcast);
assertEquals(broadcast.getBroadcastDuration(), dbObject.get("broadcastDuration"));
assertEquals(((DBObject)dbObject.get("blackoutRestriction")).get("all"), true);
}
public void testToBroadcast() {
Broadcast broadcast = new Broadcast("on", clock.now(), Duration.standardSeconds(1));
broadcast.setScheduleDate(new LocalDate(2010, 3, 20));
broadcast.addAliasUrl("some alias");
broadcast.addAlias(new Alias("some alias NS", "some alias value"));
broadcast.setBlackoutRestriction(new BlackoutRestriction(true));
broadcast.setRevisedRepeat(true);
broadcast.setRepeat(true);
broadcast.setContinuation(true);
broadcast.setNewOneOff(true);
DBObject dbObject = brt.toDBObject(broadcast);
Broadcast b = brt.fromDBObject(dbObject);
assertEquals(broadcast.getScheduleDate(), b.getScheduleDate());
assertEquals(broadcast.getTransmissionTime().getMillis(), b.getTransmissionTime().getMillis());
assertEquals(broadcast.getBroadcastOn(), b.getBroadcastOn());
assertEquals(broadcast.getScheduleDate(), b.getScheduleDate());
assertFalse(b.getAliasUrls().isEmpty());
assertFalse(b.getAliases().isEmpty());
assertTrue(b.getBlackoutRestriction().getAll());
assertTrue(b.getRevisedRepeat());
assertTrue(b.getRepeat());
assertTrue(b.getContinuation());
assertTrue(b.getNewOneOff());
}
public void testBlackoutRestrictionNotSetIfAbsent() {
Broadcast broadcast = new Broadcast("on", clock.now(), Duration.standardSeconds(1));
DBObject dbObject = brt.toDBObject(broadcast);
assertEquals(broadcast.getBroadcastDuration(), dbObject.get("broadcastDuration"));
assertFalse(dbObject.containsField("blackoutRestriction"));
Broadcast b = brt.fromDBObject(dbObject);
assertNull(b.getBlackoutRestriction());
}
}