blob: 257e96d3076d942919706a189cbbc7b07f6bfd38 [file] [log] [blame]
package com.android.clockwork.systemstatedisplay;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
import android.content.Context;
import java.util.Arrays;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public final class SystemStateProvidersTest {
@Mock Context mockContext;
@Mock SystemStateProvider mockProvider1;
@Mock SystemStateProvider mockProvider2;
@Mock SystemStateProvider mockProvider3;
@Before
public void setUp() {
initMocks(this);
}
@Test
public void getSystemStates_providesAllStatesInOrderOfTheirTitle() {
SystemState testState1 = new SystemState("Title A", "19");
SystemState testState2 = new SystemState("Z's Title", "OFF");
SystemState testState3 = new SystemState("Another Title", "200");
when(mockProvider1.getSystemState()).thenReturn(testState1);
when(mockProvider2.getSystemState()).thenReturn(testState2);
when(mockProvider3.getSystemState()).thenReturn(testState3);
SystemStateProviders providers =
new SystemStateProviders(Arrays.asList(mockProvider1, mockProvider2, mockProvider3));
List<SystemState> states = providers.getSystemStates();
assertThat(states).containsExactly(testState3, testState1, testState2).inOrder();
}
@Test
public void getSystemStates_ignoresInvalidStates() {
when(mockProvider1.getSystemState()).thenReturn(new SystemState("Title A", "19"));
when(mockProvider2.getSystemState()).thenReturn(SystemState.INVALID_STATE);
SystemStateProviders providers =
new SystemStateProviders(Arrays.asList(mockProvider1, mockProvider2));
List<SystemState> states = providers.getSystemStates();
assertThat(states).doesNotContain(SystemState.INVALID_STATE);
}
}