package rmblworx.tools.timey.persistence.dao;
import org.hibernate.SessionFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.slf4j.Logger;
import rmblworx.tools.timey.vo.AlarmDescriptor;
import rmblworx.tools.timey.vo.TimeDescriptor;
/*
* Copyright 2014-2015 Christian Raue
* MIT License http://opensource.org/licenses/mit-license.php
*/
/**
* Testet die Klasse AlarmDao auf korrektes Exception-Handling bei Datenbankproblemen. Das heißt, das von der Klasse
* erwartet wird, das sie keine Exceptions wirft - stattdessen lediglich einen Logeintrag erzeugt.
*
* @author mmatthies
*/
public class AlarmDaoTest {
/**
* Zeitpunkt für den TimeDescriptor.
*/
private static final int ZEITWERT = 1000;
/**
* AlarmDescriptor.
*/
private AlarmDescriptor alarmDescriptor;
/**
* Zu testende Implementierung.
*/
private AlarmDao dao;
/**
* Gemockter Logger um den Log nicht unnötig zuzumüllen.
*/
@Mock
private Logger logger;
/**
* SessionFactory. Explizites setzen auf null da Persistence für diese Tests nicht vorhanden sein soll.
*/
private final SessionFactory sessionFactory = null;
/**
* TimeDescriptor.
*/
private TimeDescriptor timeDescriptor;
/**
* @throws java.lang.Exception
* wenn eine Ausnahme auftritt.
*/
@Before
public final void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
this.timeDescriptor = new TimeDescriptor(ZEITWERT);
this.alarmDescriptor = new AlarmDescriptor(this.timeDescriptor, true, "leer", "/bla", this.timeDescriptor);
this.dao = new AlarmDao(this.sessionFactory, this.logger);
}
/**
* @throws java.lang.Exception
* wenn eine Ausnahme auftritt.
*/
@After
public final void tearDown() throws Exception {
this.dao = null;
this.timeDescriptor = null;
this.alarmDescriptor = null;
}
/**
* Test method for{@link AlarmDao#createAlarm(AlarmDescriptor)}.
*/
@Test
public final void testCreateAlarm() {
this.dao.createAlarm(this.alarmDescriptor);
}
/**
* Test method for{@link AlarmDao#deleteAlarm(AlarmDescriptor)}.
*/
@Test()
public final void testDeleteAlarm() {
this.dao.deleteAlarm(this.alarmDescriptor);
}
/**
* Test method for {@link AlarmDao#findAll()}.
*/
@Test
public final void testFindAll() {
this.dao.findAll();
}
/**
* Test method for{@link AlarmDao#isActivated(AlarmDescriptor)}.
*/
@Test
public final void testIsActivated() {
this.dao.isActivated(this.alarmDescriptor);
}
/**
* Test method for {@link AlarmDao#setIsActivated(AlarmDescriptor, Boolean)}.
*/
@Test
public final void testSetIsActivated() {
this.dao.setIsActivated(this.alarmDescriptor, true);
}
}