@Test
public void testTransformProgramNullStartTs() throws Exception {

    ProgramEntity programEntity = programEntityJsonMapper.transformProgramEntity( JSON_RESPONSE_DVR_GET_RECORDED_NULL_STARTTS );
    assertThat( programEntity, not( nullValue() ) );
    MediaItemEntity mediaItem = MediaItemEntityDataMapper.transform( programEntity );
    assertThat( mediaItem, not( nullValue() ) );
    assertThat( mediaItem.id(), is( equalTo( 3120 ) ) );
    assertThat( mediaItem.media(), is( equalTo( Media.PROGRAM ) ) );
    assertThat( mediaItem.title(), is( equalTo( "Star Wars: Droid Tales" ) ) );
    assertThat( mediaItem.subTitle(), is( equalTo( "Mission to Mos Eisley" ) ) );
    assertThat( mediaItem.description(), is( equalTo( "C-3PO recounts his adventure with the ``Star Wars Rebels'' crew in an effort to find R2-D2, who has been kidnapped." ) ) );
    assertThat( mediaItem.startDate(), not( nullValue() ) );
    assertThat( mediaItem.season(), is( equalTo( 0 ) ) );
    assertThat( mediaItem.episode(), is( equalTo( 0 ) ) );
    assertThat( mediaItem.studio(), is( equalTo( "DXDHD" ) ) );
    assertThat( mediaItem.url(), is( equalTo( "/Content/GetFile?FileName=2289_20150908113000.ts" ) ) );
    assertThat( mediaItem.fanartUrl(), is( nullValue() ) );
    assertThat( mediaItem.coverartUrl(), is( nullValue() ) );
    assertThat( mediaItem.bannerUrl(), is( nullValue() ) );
    assertThat( mediaItem.previewUrl(), is( "/Content/GetPreviewImage?RecordedId=3120" ) );
    assertThat( mediaItem.duration(), lessThanOrEqualTo(0L) );
    assertThat( mediaItem.isValid(), is( false ) );
    assertThat( mediaItem.validationErrors(), hasSize( 1 ) );
}