/* * 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 org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.Date; 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.persistence.dao.FacilityDao; import de.knurt.fam.core.persistence.dao.FamDaoProxy; import de.knurt.fam.core.persistence.dao.ibatis.FacilityDao4ibatis; import de.knurt.fam.test.utils.FamIBatisTezt; import de.knurt.fam.test.utils.TeztBeanSimpleFactory; /** * * @author Daniel Oltmanns <info@knurt.de> */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:/test-dependencies.xml" }) public class ReadWriteTimeFrameTest extends FamIBatisTezt { /** * */ @Test public void testUserMustBeSet() { this.clearDatabase(); FacilityAvailability da = TeztBeanSimpleFactory.getValidFacilityAvailability(); try { da.insert(); assertTrue(true); } catch (Exception e) { fail("should not have thrown"); } da.setUsernameSetThis("foo is not a user in database"); try { da.insert(); fail("should have thrown"); } catch (Exception e) { assertTrue(true); } } /** * */ @Test public void idsSet() { this.clearDatabase(); TeztBeanSimpleFactory.getValidFacilityAvailability().insert(); List<FacilityAvailability> das = FamDaoProxy.facilityDao().getAll(); assertTrue(das.size() == 1); FacilityAvailability got = das.get(0); assertTrue(got.getFacilityAvailabilityId() > 0); assertNotNull(got.getTimeStampSet()); Date sometimesago = new Date(new Date().getTime() - 100000); Date dategot = got.getTimeStampSet(); assertTrue(dategot.after(sometimesago)); // start of same game again: TeztBeanSimpleFactory.getValidFacilityAvailability().insert(); das = FamDaoProxy.facilityDao().getAll(); assertTrue(das.size() == 2); assertNotSame(das.get(0).getFacilityAvailabilityId(), das.get(1).getFacilityAvailabilityId()); } /** * */ @Test public void constructDao() { FacilityDao dao = FamDaoProxy.facilityDao(); assertTrue(dao.getClass().equals(FacilityDao4ibatis.class)); } /** * */ @Test public void getAvailabilitiesInOther() { this.clearDatabase(); FacilityAvailability inda = TeztBeanSimpleFactory.getValidFacilityAvailability(); List<FacilityAvailability> das = FamDaoProxy.facilityDao().getFacilityAvailabilitiesIgnoreParents(inda.getBasePeriodOfTime(), inda.getFacilityKey()); assertTrue(das.size() == 0); inda.insert(); das = FamDaoProxy.facilityDao().getFacilityAvailabilitiesIgnoreParents(inda.getBasePeriodOfTime(), inda.getFacilityKey()); assertEquals(1, das.size()); } /** * */ @Test public void getAllAvailabilitiesForFacility() { this.clearDatabase(); List<FacilityAvailability> das = FamDaoProxy.facilityDao().getFacilityAvailabilities(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE); assertEquals(0, das.size()); FacilityAvailability inda = TeztBeanSimpleFactory.getValidFacilityAvailability(); inda.insert(); das = FamDaoProxy.facilityDao().getFacilityAvailabilities(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE); assertEquals(1, das.size()); das = FamDaoProxy.facilityDao().getFacilityAvailabilities(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE_2); assertEquals(0, das.size()); FacilityAvailability other = TeztBeanSimpleFactory.getValidFacilityAvailability(2); other.insert(); das = FamDaoProxy.facilityDao().getFacilityAvailabilities(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE); assertEquals(2, das.size()); das = FamDaoProxy.facilityDao().getFacilityAvailabilities(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE_2); assertEquals(0, das.size()); FacilityAvailability otherFacility = TeztBeanSimpleFactory.getValidFacilityAvailability(2); otherFacility.setFacilityKey(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE_2); assertTrue(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE_2.equals("schoolbus")); // idiot // netbeans otherFacility.insert(); das = FamDaoProxy.facilityDao().getFacilityAvailabilities(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE); assertEquals(2, das.size()); das = FamDaoProxy.facilityDao().getFacilityAvailabilities(TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE_2); assertEquals(1, das.size()); das = FamDaoProxy.facilityDao().getFacilityAvailabilities("not set insane stuff"); assertEquals(0, das.size()); } /** * */ @Test public void insertValidAndGetBack() { this.clearDatabase(); FacilityDao dao = FamDaoProxy.getInstance().getFacilityDao(); FacilityAvailability ava = TeztBeanSimpleFactory.getValidFacilityAvailability(); dao.insert(ava); assertEquals(1, dao.getAll().size()); FacilityAvailability tf = dao.getAll().get(0); FacilityAvailability gnaback = tf; assertEquals(gnaback.getFacilityKey(), TeztBeanSimpleFactory.KEY_FACILITY_BOOKABLE); assertEquals(gnaback.getBasePeriodOfTime().getStart() / 1000, ava.getBasePeriodOfTime().getStart() / 1000); assertEquals(gnaback.getBasePeriodOfTime().getEnd() / 1000, ava.getBasePeriodOfTime().getEnd() / 1000); } /** * */ @Test public void directInsertStorable() { this.clearDatabase(); FacilityAvailability testNotAvailablility = TeztBeanSimpleFactory.getValidFacilityAvailability(); testNotAvailablility.insert(); testNotAvailablility.update(); assertEquals(1, FamDaoProxy.facilityDao().getAll().size()); assertNotNull(testNotAvailablility.getFacilityAvailabilityId()); assertTrue(testNotAvailablility.getFacilityAvailabilityId() > 0); } }