package rmblworx.tools.timey; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; import java.util.Arrays; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import rmblworx.tools.timey.vo.AlarmDescriptor; /* * Copyright 2014-2015 Christian Raue * MIT License http://opensource.org/licenses/mit-license.php */ /** * Tests für den AlarmClient. * * @author mmatthies */ public class AlarmClientTest { /** * Text für die Meldung eines unerwarteten Ergebnisses. */ private static final String TEXT_UNERWARTETER_RUECKGABEWERT = "Es wurde ein falscher Rückgabewert geliefert!"; /** * Zu testende Implementierung. */ private AlarmClient alarmClient; /** * Mock des AlarmDescriptor. */ @Mock private AlarmDescriptor alarmDescriptor; /** * Liste mit gemockten Alarmen. */ private List<AlarmDescriptor> alarms; /** * Mock der Empfängerimplementierung - Besonderheit - die Klasse Alarm hat eine nicht im Interface deklarierte * Methode die jedoch in einem Subkommando zum Setzen des Zustandes im AlarmDescriptor genutzt wird. Dieser Mock ist * vorrübergehend dazu da um eine ClassCastException zu verhindern. */ @Mock // TODO - siehe Javadoc private Alarm mockedReceiverImpl; /** * Mock der Empfängerimplementierung. */ @Mock private IAlarm receiver; /** * @throws java.lang.Exception * wenn eine Ausnahme auftritt. */ @Before public final void setUp() throws Exception { MockitoAnnotations.initMocks(this); this.alarms = Arrays.asList(this.alarmDescriptor, this.alarmDescriptor); this.setupMockedReceiver(); this.alarmClient = new AlarmClient(this.receiver); } /** * Setup-Methode für das zu mockende Empfängerobjekt. */ private void setupMockedReceiver() { when(this.receiver.getAllAlarms()).thenReturn(this.alarms); when(this.receiver.isAlarmActivated(this.alarmDescriptor)).thenReturn(Boolean.TRUE); when(this.receiver.removeAlarm(this.alarmDescriptor)).thenReturn(Boolean.TRUE); when(this.receiver.setAlarm(this.alarmDescriptor)).thenReturn(Boolean.TRUE); when(this.receiver.setStateOfAlarm(this.alarmDescriptor, Boolean.TRUE)).thenReturn(Boolean.TRUE); when(this.mockedReceiverImpl.setStateOfAlarm(this.alarmDescriptor, Boolean.TRUE)).thenReturn(Boolean.TRUE); } /** * @throws java.lang.Exception * wenn eine Ausnahme auftritt. */ @After public final void tearDown() throws Exception { this.receiver = null; this.alarmDescriptor = null; this.alarms = null; } /** * Test method for {@link AlarmClient#initAlarmDeleteAlarm(AlarmDescriptor)}. */ @Test public final void testInitAlarmDeleteAlarm() { final Boolean actual = this.alarmClient.initAlarmDeleteAlarm(this.alarmDescriptor); assertTrue(TEXT_UNERWARTETER_RUECKGABEWERT, actual); } /** * Test method for {@link AlarmClient#initAlarmGetStateOfAlarmCommand(AlarmDescriptor)}. */ @Test public final void testInitAlarmGetStateOfAlarmCommand() { final Boolean actual = this.alarmClient.initAlarmGetStateOfAlarmCommand(this.alarmDescriptor); assertTrue(TEXT_UNERWARTETER_RUECKGABEWERT, actual); } /** * Test method for {@link AlarmClient#initAlarmSetStateOfAlarmCommand(AlarmDescriptor, Boolean)}. */ @Test public final void testInitAlarmSetStateOfAlarmCommand() { this.alarmClient = new AlarmClient(this.mockedReceiverImpl); final Boolean actual = this.alarmClient.initAlarmSetStateOfAlarmCommand(this.alarmDescriptor, Boolean.TRUE); assertTrue(TEXT_UNERWARTETER_RUECKGABEWERT, actual); } /** * Test method for {@link AlarmClient#initGetAllAlarms()}. */ @Test public final void testInitGetAllAlarms() { final List<AlarmDescriptor> actual = this.alarmClient.initGetAllAlarms(); assertNotNull(TEXT_UNERWARTETER_RUECKGABEWERT, actual); } /** * Test method for {@link AlarmClient#initSetAlarmCommand(AlarmDescriptor)}. */ @Test public final void testInitSetAlarmCommand() { final Boolean actual = this.alarmClient.initSetAlarmCommand(this.alarmDescriptor); assertTrue(TEXT_UNERWARTETER_RUECKGABEWERT, actual); } }