package jnpf.dmsController.print;
|
|
import jnpf.dmsEntity.print.form.DmsPrintOperationQuery;
|
import jnpf.dmsEntity.print.vo.DmsPrintOperationLogVO;
|
import jnpf.dmsService.DmsPrintOperationLogService;
|
import org.junit.jupiter.api.Test;
|
import org.springframework.mock.web.MockHttpServletResponse;
|
|
import java.nio.charset.StandardCharsets;
|
import java.util.Collections;
|
import java.util.List;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
class DmsPrintOperationLogControllerTest {
|
|
@Test
|
void exportWritesUtf8BomAndCsvThroughSingleOutputStream() throws Exception {
|
DmsPrintOperationLogVO row = new DmsPrintOperationLogVO();
|
row.setDocumentCode("BG-001");
|
row.setDocumentName("检验,报告");
|
row.setPrintType("RECORD_DOCUMENT");
|
row.setOperatorName("张三");
|
row.setCopies(1);
|
DmsPrintOperationLogService service = new DmsPrintOperationLogService(null, null, null) {
|
@Override
|
public List<DmsPrintOperationLogVO> export(DmsPrintOperationQuery query) {
|
return Collections.singletonList(row);
|
}
|
};
|
|
MockHttpServletResponse response = new MockHttpServletResponse();
|
new DmsPrintOperationLogController(service).export(new DmsPrintOperationQuery(), response);
|
|
byte[] content = response.getContentAsByteArray();
|
assertEquals((byte) 0xEF, content[0]);
|
assertEquals((byte) 0xBB, content[1]);
|
assertEquals((byte) 0xBF, content[2]);
|
String csv = new String(content, StandardCharsets.UTF_8);
|
assertTrue(csv.startsWith("\uFEFF编号,名称"));
|
assertTrue(csv.contains("\"检验,报告\""));
|
}
|
}
|