package com.metservice.kanban.web;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.SystemUtils;
import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.web.MockHttpServletResponse;
import com.metservice.kanban.KanbanService;
public class KanbanDataControllerTest {
private KanbanService fakeKanbanService;
@Before
public void setup() throws IOException {
fakeKanbanService = new KanbanService(new File(SystemUtils.getUserDir(), "/src/test/resources"));
}
@Test
public void downloadCsv() throws IOException {
KanbanDataController dataController = new KanbanDataController();
dataController.setKanbanService(fakeKanbanService);
MockHttpServletResponse response = new MockHttpServletResponse();
dataController.download("test-project", "story", response);
assertThat((String)response.getHeader("Content-Disposition"), is("attachment; filename=\"story.csv\""));
assertThat(response.getContentType(), is("text/csv"));
File expectedFile = new File(SystemUtils.getUserDir(), "/src/test/resources/test-project/story.csv");
String expectedContent = FileUtils.readFileToString(expectedFile);
assertThat(response.getContentAsString(), is(expectedContent));
}
}