package de.lessvoid.nifty.html;
import static org.easymock.EasyMock.createMock;
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.ElementBuilder.Align;
import de.lessvoid.nifty.builder.ImageBuilder;
public class NiftyBuilderFactoryImageBuilderTest {
private ImageBuilder imageBuilderMock;
private NiftyBuilderFactory builderFactory;
@Before
public void before() {
imageBuilderMock = createMock(ImageBuilder.class);
builderFactory = new NiftyBuilderFactory() {
@Override
public ImageBuilder createImageBuilder() {
return imageBuilderMock;
}
};
}
@After
public void after() {
verify(imageBuilderMock);
}
@Test
public void testCreateImageBuilderMinimal() {
imageBuilderMock.filename("src");
replay(imageBuilderMock);
assertEquals(imageBuilderMock, builderFactory.createImageBuilder("src", null, null, null, null, null));
}
@Test
public void testCreateImageBuilderComplete() {
imageBuilderMock.filename("src");
imageBuilderMock.width("100");
imageBuilderMock.height("100");
imageBuilderMock.backgroundColor("bgcolor");
imageBuilderMock.align(Align.Center);
replay(imageBuilderMock);
assertEquals(imageBuilderMock, builderFactory.createImageBuilder("src", "middle", "100", "100", "bgcolor", null));
}
@Test
public void testCreateImageBuilderWithPercent() {
imageBuilderMock.filename("src");
imageBuilderMock.width("100%");
imageBuilderMock.height("100%");
imageBuilderMock.backgroundColor("bgcolor");
imageBuilderMock.align(Align.Center);
replay(imageBuilderMock);
assertEquals(imageBuilderMock, builderFactory.createImageBuilder("src", "middle", "100%", "100%", "bgcolor", null));
}
@Test
public void testCreateImageBuilderAlignLeft() {
performAlignTest(Align.Left, "left");
}
@Test
public void testCreateImageBuilderAlignRight() {
performAlignTest(Align.Right, "right");
}
@Test
public void testCreateImageBuilderAlignMiddle() {
performAlignTest(Align.Center, "middle");
}
private void performAlignTest(final Align expectedAlign, final String sourceAlign) {
imageBuilderMock.filename("src");
imageBuilderMock.backgroundColor("bgcolor");
imageBuilderMock.align(expectedAlign);
imageBuilderMock.padding("12");
replay(imageBuilderMock);
assertEquals(imageBuilderMock, builderFactory.createImageBuilder("src", sourceAlign, null, null, "bgcolor", "12"));
}
}