package org.jbake.render;
import org.apache.commons.configuration.CompositeConfiguration;
import org.jbake.app.ContentStore;
import org.jbake.app.Renderer;
import org.jbake.render.support.MockCompositeConfiguration;
import org.jbake.template.RenderingException;
import org.junit.Test;
import java.io.File;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.*;
public class ArchiveRendererTest {
@Test
public void returnsZeroWhenConfigDoesNotRenderArchives() throws RenderingException {
ArchiveRenderer renderer = new ArchiveRenderer();
CompositeConfiguration compositeConfiguration = new MockCompositeConfiguration().withDefaultBoolean(false);
ContentStore contentStore = mock(ContentStore.class);
Renderer mockRenderer = mock(Renderer.class);
int renderResponse = renderer.render(mockRenderer, contentStore,
new File("fake"), new File("fake"), compositeConfiguration);
assertThat(renderResponse).isEqualTo(0);
}
@Test
public void doesNotRenderWhenConfigDoesNotRenderArchives() throws Exception {
ArchiveRenderer renderer = new ArchiveRenderer();
CompositeConfiguration compositeConfiguration = new MockCompositeConfiguration().withDefaultBoolean(false);
ContentStore contentStore = mock(ContentStore.class);
Renderer mockRenderer = mock(Renderer.class);
int renderResponse = renderer.render(mockRenderer, contentStore,
new File("fake"), new File("fake"), compositeConfiguration);
verify(mockRenderer, never()).renderArchive(anyString());
}
@Test
public void returnsOneWhenConfigRendersArchives() throws RenderingException {
ArchiveRenderer renderer = new ArchiveRenderer();
CompositeConfiguration compositeConfiguration = new MockCompositeConfiguration().withDefaultBoolean(true);
ContentStore contentStore = mock(ContentStore.class);
Renderer mockRenderer = mock(Renderer.class);
int renderResponse = renderer.render(mockRenderer, contentStore,
new File("fake"), new File("fake"), compositeConfiguration);
assertThat(renderResponse).isEqualTo(1);
}
@Test
public void doesRenderWhenConfigDoesNotRenderArchives() throws Exception {
ArchiveRenderer renderer = new ArchiveRenderer();
CompositeConfiguration compositeConfiguration = new MockCompositeConfiguration().withDefaultBoolean(true);
ContentStore contentStore = mock(ContentStore.class);
Renderer mockRenderer = mock(Renderer.class);
int renderResponse = renderer.render(mockRenderer, contentStore,
new File("fake"), new File("fake"), compositeConfiguration);
verify(mockRenderer, times(1)).renderArchive("random string");
}
@Test(expected = RenderingException.class)
public void propogatesRenderingException() throws Exception {
ArchiveRenderer renderer = new ArchiveRenderer();
CompositeConfiguration compositeConfiguration = new MockCompositeConfiguration().withDefaultBoolean(true);
ContentStore contentStore = mock(ContentStore.class);
Renderer mockRenderer = mock(Renderer.class);
doThrow(new Exception()).when(mockRenderer).renderArchive(anyString());
int renderResponse = renderer.render(mockRenderer, contentStore,
new File("fake"), new File("fake"), compositeConfiguration);
verify(mockRenderer, never()).renderArchive("random string");
}
}