package cn.iocoder.yudao.module.mes.framework.qrcode;
|
|
import cn.hutool.extra.qrcode.QrCodeUtil;
|
import org.junit.jupiter.api.Test;
|
|
import javax.imageio.ImageIO;
|
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayOutputStream;
|
import java.util.zip.ZipInputStream;
|
import java.util.zip.ZipOutputStream;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
|
class QrCodeImageUtilsZipTest {
|
|
@Test
|
void writesMultipleReadablePngEntries() throws Exception {
|
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
try (ZipOutputStream zip = new ZipOutputStream(bytes)) {
|
QrCodeImageUtils.writeZipEntry(zip, QrLabelInfo.builder()
|
.fileName("1234567890123456").code("1234567890123456").build());
|
QrCodeImageUtils.writeZipEntry(zip, QrLabelInfo.builder()
|
.fileName("1234567890123457").code("1234567890123457").build());
|
}
|
|
try (ZipInputStream zip = new ZipInputStream(new ByteArrayInputStream(bytes.toByteArray()))) {
|
assertEquals("1234567890123456.png", zip.getNextEntry().getName());
|
var first = ImageIO.read(zip);
|
assertNotNull(first);
|
assertEquals("1234567890123456", QrCodeUtil.decode(first));
|
assertEquals("1234567890123457.png", zip.getNextEntry().getName());
|
var second = ImageIO.read(zip);
|
assertNotNull(second);
|
assertEquals("1234567890123457", QrCodeUtil.decode(second));
|
assertNull(zip.getNextEntry());
|
}
|
}
|
|
}
|