package de.lessvoid.nifty.html;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertEquals;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import de.lessvoid.nifty.builder.EffectBuilder;
import de.lessvoid.nifty.builder.PanelBuilder;
public class NiftyBuilderFactoryTablePanelBuilderTest {
private PanelBuilder panelBuilderMock;
private NiftyBuilderFactory builderFactory;
@Before
public void before() {
panelBuilderMock = createMock(PanelBuilder.class);
builderFactory = new NiftyBuilderFactory() {
@Override
public PanelBuilder createPanelBuilder() {
return panelBuilderMock;
}
};
}
@After
public void after() {
verify(panelBuilderMock);
}
@Test
public void testCreateTableTagPanelBuilderNoAttributes() {
panelBuilderMock.childLayoutVertical();
replay(panelBuilderMock);
assertEquals(panelBuilderMock, builderFactory.createTableTagPanelBuilder(null, null, null, null));
}
@Test
public void testCreateTableTagPanelBuilderFull() {
panelBuilderMock.childLayoutVertical();
assertGeneralAttributes(panelBuilderMock);
replay(panelBuilderMock);
assertEquals(panelBuilderMock, builderFactory.createTableTagPanelBuilder("20", "#ff00ff", "2", "#00ff00"));
}
@Test
public void testCreateTableRowPanelBuilderNoAttributes() {
panelBuilderMock.childLayoutHorizontal();
replay(panelBuilderMock);
assertEquals(panelBuilderMock, builderFactory.createTableRowPanelBuilder(null, null, null, null));
}
@Test
public void testCreateTableRowPanelBuilderFull() {
panelBuilderMock.childLayoutHorizontal();
assertGeneralAttributes(panelBuilderMock);
replay(panelBuilderMock);
assertEquals(panelBuilderMock, builderFactory.createTableRowPanelBuilder("20", "#ff00ff", "2", "#00ff00"));
}
@Test
public void testCreateTableDataPanelBuilderNoAttributes() {
panelBuilderMock.childLayoutVertical();
replay(panelBuilderMock);
assertEquals(panelBuilderMock, builderFactory.createTableDataPanelBuilder(null, null, null, null));
}
@Test
public void testCreateTableDataPanelBuilderFull() {
panelBuilderMock.childLayoutVertical();
assertGeneralAttributes(panelBuilderMock);
replay(panelBuilderMock);
assertEquals(panelBuilderMock, builderFactory.createTableDataPanelBuilder("20", "#ff00ff", "2", "#00ff00"));
}
private void assertGeneralAttributes(final PanelBuilder panelBuilder) {
panelBuilder.width("20");
panelBuilder.backgroundColor("#ff00ff");
panelBuilder.onActiveEffect(isA(EffectBuilder.class)); // can't test the actual effect values unfortunatly
}
}