/* * Copyright 2009-2012 by KNURT Systeme (http://www.knurt.de) * * Licensed under the Creative Commons License Attribution-NonCommercial-ShareAlike 3.0 Unported; * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://creativecommons.org/licenses/by-nc-sa/3.0/ * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.knurt.fam.test.unit.db.ibatis; import static de.knurt.fam.test.utils.TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE; import static de.knurt.fam.test.utils.TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE_PARENT; import static de.knurt.fam.test.utils.TeztBeanSimpleFactory.getValidFacilityAvailability; import static org.junit.Assert.assertEquals; import java.util.Calendar; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import de.knurt.fam.core.model.persist.FacilityAvailability; import de.knurt.fam.core.model.persist.User; import de.knurt.fam.core.persistence.dao.FamDaoProxy; import de.knurt.fam.core.persistence.dao.config.FacilityConfigDao; import de.knurt.fam.test.utils.FamIBatisTezt; import de.knurt.fam.test.utils.TeztBeanSimpleFactory; import de.knurt.heinzelmann.util.time.SimpleTimeFrame; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:/test-dependencies.xml" }) public class FacilityAvailabilityGetterTest extends FamIBatisTezt { /** * */ @Test public void debug200909131523() { this.clearDatabase(); // create da with starting 1 hour ago and ending in 1 hour FacilityAvailability da = new FacilityAvailability(); Calendar start = Calendar.getInstance(); start.add(Calendar.HOUR_OF_DAY, 1); Calendar end = (Calendar) start.clone(); end.add(Calendar.HOUR_OF_DAY, 2); // the problem da.setEndOfBasePeriodOfTime(end.getTime()); da.setStartOfBasePeriodOfTime(end.getTime()); // other stuff da.setFacilityKey(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE); User user = TeztBeanSimpleFactory.getNewUniqueValidUser(end.hashCode() + ""); user.insert(); da.setUserSetThis(user); da.setAvailable(FacilityAvailability.COMPLETE_AVAILABLE); da.setNotice("testnotice"); da.insert(); // get it back List<FacilityAvailability> das = FamDaoProxy.facilityDao().getFacilityAvailabilitiesFollowingParents(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE); assertEquals(1, das.size()); FacilityAvailability dagot = das.get(0); assertEquals("testnotice", dagot.getNotice()); } /** * */ @Test public void checkParentIsParentAndAdamAndEveIsAdamAndEve() { String adamAndEve = FacilityConfigDao.getInstance().getParentFacilityKey(KEY_FACILITY_BOOKABLE); assertEquals(KEY_FACILITY_BOOKABLE_PARENT, adamAndEve); } /** * */ @Test public void getChildrenFacilitiesToo() { this.clearDatabase(); FacilityAvailability daPut = new FacilityAvailability(); daPut.setBasePeriodOfTime(SimpleTimeFrame.getToday()); daPut.setFacilityKey(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE_PARENT); User testuser = TeztBeanSimpleFactory.getNewValidUser(); testuser.setUsername("testuser"); testuser.insert(); daPut.setUserSetThis(testuser); daPut.setAvailable(FacilityAvailability.GENERAL_NOT_AVAILABLE); daPut.insert(); assertEquals(1, FamDaoProxy.facilityDao().getAll().size()); assertEquals(1, FamDaoProxy.facilityDao().getFacilityAvailabilities(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE_PARENT).size()); assertEquals(1, FamDaoProxy.facilityDao().getFacilityAvailabilities(FacilityConfigDao.facility(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE_PARENT)).size()); List<FacilityAvailability> children = FamDaoProxy.facilityDao().getFacilityAvailabilitiesFollowingParents(SimpleTimeFrame.getToday(), TeztBeanSimpleFactory.getFacility1()); assertEquals(1, children.size()); } /** * */ @Test public void allFacilityAvailabilitiesOfFacilityKey() { this.clearDatabase(); List<FacilityAvailability> das = FamDaoProxy.facilityDao().getFacilityAvailabilitiesFollowingParents(KEY_FACILITY_BOOKABLE); assertEquals(0, das.size()); FacilityAvailability da = getValidFacilityAvailability(); da.setFacilityKey(KEY_FACILITY_BOOKABLE); da.insert(); das = FamDaoProxy.facilityDao().getFacilityAvailabilitiesFollowingParents(KEY_FACILITY_BOOKABLE); assertEquals(1, das.size()); da = getValidFacilityAvailability(); da.setFacilityKey(KEY_FACILITY_BOOKABLE_PARENT); da.insert(); das = FamDaoProxy.facilityDao().getFacilityAvailabilitiesFollowingParents(KEY_FACILITY_BOOKABLE); assertEquals(2, das.size()); } }