package com.rapidftr.controls;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.VerticalFieldManager;
import org.junit.Test;
import com.rapidftr.form.Form;
public class TabsFieldTest {
@Test
public void openDefaultTabOnDraw() {
TabsField tabsField = createTabsField();
Tab tab1 = createTab("tab1");
Tab tab2 = createTab("tab2");
tabsField.addTab(tab1);
tabsField.addTab(tab2);
tabsField.draw();
verify(tab1).open();
verify(tab2, never()).open();
}
@Test
public void toggleSelectedTab() {
TabsField tabsField = createTabsField();
Tab tab1 = createTab("tab1");
Tab tab2 = createTab("tab2");
tabsField.addTab(tab1);
tabsField.addTab(tab2);
tabsField.draw();
tab2.focusChanged(mock(TabLabelField.class), 1);
verify(tab1).close();
verify(tab2).open();
}
@Test
public void getSelectedTabName() throws Exception {
TabsField tabsField = createTabsField();
Tab tab1 = createTab("tab1");
Tab tab2 = createTab("tab2");
tabsField.addTab(tab1);
tabsField.addTab(tab2);
tabsField.draw();
assertEquals("tab1", tabsField.getSelectedTab());
tab2.focusChanged(mock(TabLabelField.class), 1);
assertEquals("tab2", tabsField.getSelectedTab());
}
private Tab createTab(String label) {
TabLabelField mockLabelField = mock(TabLabelField.class);
when(mockLabelField.getText()).thenReturn(label);
return spy(new Tab(mock(Form.class), null, mockLabelField,
mock(TabBodyField.class)));
}
private TabsField createTabsField() {
return new TabsField(mock(VerticalFieldManager.class),
mock(HorizontalFieldManager.class),
mock(VerticalFieldManager.class));
}
}