/* * Copyright (C) 2010 Interactive Media Management * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package dk.i2m.converge.ejb.facades; import dk.i2m.converge.core.workflow.Edition; import java.util.List; import dk.i2m.converge.core.workflow.EditionPattern; import java.util.Calendar; import java.util.GregorianCalendar; import dk.i2m.converge.core.workflow.Outlet; import dk.i2m.converge.EjbTestCase; import dk.i2m.converge.core.workflow.OutletType; import org.junit.Test; import static org.junit.Assert.*; import org.junit.Ignore; /** * Unit tests for the outlet edition functionality. * * @author Allan Lykke Christensen */ public class OutletEditionTest extends EjbTestCase { public static final String BEAN_INTERFACE = "OutletFacadeBeanLocal"; @Test @Ignore public void testObtainBean() throws Exception { Object object = getInitialContext().lookup(BEAN_INTERFACE); assertNotNull(object); assertTrue(object instanceof OutletFacadeLocal); } @Test @Ignore public void testSelectDateForDaily() throws Exception { Object object = getInitialContext().lookup(BEAN_INTERFACE); OutletFacadeLocal facade = (OutletFacadeLocal) object; Outlet outlet = facade.createOutlet(new Outlet()); outlet.setTitle("My Times"); outlet.setType(OutletType.PRINT); outlet.getEditionPatterns().add(new EditionPattern(Calendar.MONDAY, 0, 0, 23, 59, 23, 59, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.TUESDAY, 0, 0, 23, 59, 23, 59, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.WEDNESDAY, 0, 0, 23, 59, 23, 59, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.THURSDAY, 0, 0, 23, 59, 23, 59, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.FRIDAY, 0, 0, 23, 59, 23, 59, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.SATURDAY, 0, 0, 23, 59, 23, 59, outlet)); outlet = facade.updateOutlet(outlet); List<Edition> fridayEditions = facade.findEditionsByDate(outlet, new GregorianCalendar(2010, Calendar.JANUARY, 2)); List<Edition> saturdayEditions = facade.findEditionsByDate(outlet, new GregorianCalendar(2010, Calendar.JANUARY, 2)); List<Edition> sundayEditions = facade.findEditionsByDate(outlet, new GregorianCalendar(2010, Calendar.JANUARY, 3)); List<Edition> mondayEditions = facade.findEditionsByDate(outlet, new GregorianCalendar(2010, Calendar.JANUARY, 4)); List<Edition> tuesdayEditions = facade.findEditionsByDate(outlet, new GregorianCalendar(2010, Calendar.JANUARY, 5)); List<Edition> wednesdayEditions = facade.findEditionsByDate(outlet, new GregorianCalendar(2010, Calendar.JANUARY, 6)); List<Edition> thursdayEditions = facade.findEditionsByDate(outlet, new GregorianCalendar(2010, Calendar.JANUARY, 7)); assertEquals(1, fridayEditions.size()); assertEquals(1, saturdayEditions.size()); assertEquals(0, sundayEditions.size()); assertEquals(1, mondayEditions.size()); assertEquals(1, tuesdayEditions.size()); assertEquals(1, wednesdayEditions.size()); assertEquals(1, thursdayEditions.size()); } @Test @Ignore public void testSelectDateForRadioMultipleDaily() throws Exception { Object object = getInitialContext().lookup(BEAN_INTERFACE); OutletFacadeLocal facade = (OutletFacadeLocal) object; Outlet outlet = facade.createOutlet(new Outlet()); outlet.setTitle("My Tunes"); outlet.setType(OutletType.AUDIO); outlet.getEditionPatterns().add(new EditionPattern(Calendar.MONDAY, 6, 0, 6, 15, 6, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.MONDAY, 7, 0, 7, 15, 7, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.MONDAY, 8, 0, 8, 15, 8, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.MONDAY, 9, 0, 9, 15, 9, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.MONDAY, 13, 0, 13, 15, 13, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.MONDAY, 17, 0, 17, 15, 17, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.MONDAY, 18, 0, 18, 15, 18, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.MONDAY, 19, 0, 19, 15, 19, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.TUESDAY, 6, 0, 6, 15, 6, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.TUESDAY, 7, 0, 7, 15, 7, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.TUESDAY, 8, 0, 8, 15, 8, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.TUESDAY, 9, 0, 9, 15, 9, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.TUESDAY, 13, 0, 13, 15, 13, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.TUESDAY, 17, 0, 17, 15, 17, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.TUESDAY, 18, 0, 18, 15, 18, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.TUESDAY, 19, 0, 19, 15, 19, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.SATURDAY, 6, 0, 6, 15, 6, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.SATURDAY, 7, 0, 7, 15, 7, 15, outlet)); outlet.getEditionPatterns().add(new EditionPattern(Calendar.SATURDAY, 8, 0, 8, 15, 8, 15, outlet)); outlet = facade.updateOutlet(outlet); List<Edition> mondayEditions = facade.findEditionsByDate(outlet, new GregorianCalendar(2010, Calendar.JANUARY, 4)); List<Edition> tuesdayEditions = facade.findEditionsByDate(outlet, new GregorianCalendar(2010, Calendar.JANUARY, 5)); List<Edition> saturdayEditions = facade.findEditionsByDate(outlet, new GregorianCalendar(2010, Calendar.JANUARY, 9)); assertEquals(8, mondayEditions.size()); assertEquals(8, tuesdayEditions.size()); assertEquals(3, saturdayEditions.size()); } @Test @Ignore public void testClose() throws Exception { OutletFacadeLocal facade = (OutletFacadeLocal) getInitialContext().lookup(BEAN_INTERFACE); Outlet outlet = new Outlet(); outlet.setTitle("Test Outlet"); outlet = facade.createOutlet(outlet); Calendar tMinusOne = Calendar.getInstance(); tMinusOne.add(Calendar.DAY_OF_MONTH, -1); Calendar tMinusTwo = Calendar.getInstance(); tMinusTwo.add(Calendar.DAY_OF_MONTH, -2); Calendar tPlusOne = Calendar.getInstance(); tPlusOne.add(Calendar.DAY_OF_MONTH, 1); Calendar tPlusTwo = Calendar.getInstance(); tPlusTwo.add(Calendar.DAY_OF_MONTH, 2); Calendar tPlusThree = Calendar.getInstance(); tPlusThree.add(Calendar.DAY_OF_MONTH, 3); facade.createEdition(new Edition(outlet, tMinusOne.getTime())); facade.createEdition(new Edition(outlet, tMinusTwo.getTime())); facade.createEdition(new Edition(outlet, tPlusOne.getTime())); facade.createEdition(new Edition(outlet, tPlusTwo.getTime())); facade.createEdition(new Edition(outlet, tPlusThree.getTime())); List<Edition> editions = facade.findEditionsByStatus(true, outlet); assertEquals(5, editions.size()); int closed = facade.closeOverdueEditions(); assertEquals(2, closed); editions = facade.findEditionsByStatus(true, outlet); assertEquals(3, editions.size()); } }