/** * */ package net.frontlinesms.data.repository.hibernate; import net.frontlinesms.junit.HibernateTestCase; import net.frontlinesms.data.domain.SmsModemSettings; import net.frontlinesms.data.repository.SmsModemSettingsDao; import org.springframework.beans.factory.annotation.Required; /** * Test class for {@link HibernateSmsModemSettingsDao} * @author Alex */ public class HibernateSmsModemSettingsDaoTest extends HibernateTestCase { //> CONSTANTS private static final String SERIAL_ONE = "Serial ONE"; private static final String SERIAL_TWO = "Serial TWO"; //> INSTANCE PROPERTIES /** Instance of this DAO implementation we are testing. */ private SmsModemSettingsDao dao; //> TEST METHODS /** * Test everything all at once! */ public void test() { //changes to allow extra method setters used smsc number //SmsModemSettings settingsOne = new SmsModemSettings(SERIAL_ONE, "Manufacturer", "Model", true, false, true, false); SmsModemSettings settingsOne = new SmsModemSettings(SERIAL_ONE); settingsOne.setManufacturer("Manufacturer"); settingsOne.setModel("Model"); settingsOne.setUseForSending(true); settingsOne.setUseForReceiving(false); settingsOne.setDeleteMessagesAfterReceiving(true); settingsOne.setUseDeliveryReports(false); assertNull(dao.getSmsModemSettings(SERIAL_ONE)); dao.saveSmsModemSettings(settingsOne); assertEquals(settingsOne, dao.getSmsModemSettings(SERIAL_ONE)); SmsModemSettings settingsTwo = new SmsModemSettings( SERIAL_TWO); settingsTwo.setManufacturer("Manufacturer"); settingsTwo.setModel("Model"); settingsTwo.setUseForSending(false); settingsTwo.setUseForReceiving(true); settingsTwo.setDeleteMessagesAfterReceiving(false); settingsTwo.setUseDeliveryReports(true); assertNull(dao.getSmsModemSettings(SERIAL_TWO)); dao.saveSmsModemSettings(settingsTwo); assertEquals(settingsOne, dao.getSmsModemSettings(SERIAL_ONE)); assertEquals(settingsTwo, dao.getSmsModemSettings(SERIAL_TWO)); SmsModemSettings settingsOneFetched = dao.getSmsModemSettings(SERIAL_ONE); assertEquals(settingsOne, settingsOneFetched); SmsModemSettings settingsTwoFetched = dao.getSmsModemSettings(SERIAL_TWO); assertEquals(settingsTwo, settingsTwoFetched); assertTrue(settingsOne.useForSending()); settingsOne.setUseForSending(false); dao.updateSmsModemSettings(settingsOne); settingsOne = dao.getSmsModemSettings(SERIAL_ONE); assertFalse(settingsOne.useForSending()); final int expectedSettingsCount = 2; assertEquals(expectedSettingsCount, dao.getCount()); } //> ACCESSORS /** @param d The DAO to use for the test. */ @Required public void setSmsModemSettingsDao(SmsModemSettingsDao d) { // we can just set the DAO once in the test this.dao = d; } }