package org.atlasapi.media.channel; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import java.util.List; import org.atlasapi.media.entity.Publisher; import org.junit.Test; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.metabroadcast.common.intl.Countries; import com.mongodb.DBObject; public class ChannelGroupTranslatorTest { private final ChannelGroupTranslator channelGroupTranslator = new ChannelGroupTranslator(); @Test public void testEncodesAndDecodedChannelGroup() { ChannelGroup channelGroup = new Platform(); channelGroup.setId(5678L); channelGroup.setAvailableCountries(ImmutableSet.of(Countries.US,Countries.GB)); channelGroup.addTitle("Title"); channelGroup.setPublisher(Publisher.BBC); ChannelNumbering numbering1 = ChannelNumbering.builder() .withChannel(1234L) .withChannelNumber("1") .withChannelGroup(channelGroup) .build(); ChannelNumbering numbering2 = ChannelNumbering.builder() .withChannel(1235L) .withChannelNumber("7") .withChannelGroup(channelGroup) .build(); ChannelNumbering numbering3 = ChannelNumbering.builder() .withChannel(1236L) .withChannelNumber("89") .withChannelGroup(channelGroup) .build(); List<ChannelNumbering> channelNumberings = Lists.newArrayList(numbering1, numbering2, numbering3); channelGroup.setChannelNumberings(channelNumberings); DBObject encoded = channelGroupTranslator.toDBObject(null, channelGroup); ChannelGroup decoded = channelGroupTranslator.fromDBObject(encoded, null); assertThat(decoded.getAvailableCountries(), is(equalTo(channelGroup.getAvailableCountries()))); assertThat(decoded.getPublisher(), is(equalTo(channelGroup.getPublisher()))); assertThat(decoded.getTitle(), is(equalTo(channelGroup.getTitle()))); assertThat(decoded.getChannels(), is(equalTo(channelGroup.getChannels()))); assertEquals(channelGroup.getChannelNumberings(), decoded.getChannelNumberings()); } }