package jnpf.dmsEntity.preview.enums; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; class DmsWatermarkTargetTypeTest { @Test void classifiesWatermarkTargetExtensionsCaseInsensitively() { assertEquals(DmsWatermarkTargetType.DOCX, DmsWatermarkTargetType.fromFileName("manual.DOCX")); assertEquals(DmsWatermarkTargetType.PDF, DmsWatermarkTargetType.fromFileName("manual.PDF")); assertEquals(DmsWatermarkTargetType.IMAGE, DmsWatermarkTargetType.fromFileName("diagram.bmp")); assertEquals(DmsWatermarkTargetType.IMAGE, DmsWatermarkTargetType.fromFileName("animation.GIF")); assertEquals(DmsWatermarkTargetType.IMAGE, DmsWatermarkTargetType.fromFileName("photo.jpeg")); assertEquals(DmsWatermarkTargetType.IMAGE, DmsWatermarkTargetType.fromFileName("photo.JPG")); assertEquals(DmsWatermarkTargetType.IMAGE, DmsWatermarkTargetType.fromFileName("diagram.png")); assertEquals(DmsWatermarkTargetType.IMAGE, DmsWatermarkTargetType.fromFileName("diagram.webp")); } @Test void fallsBackToMimeTypeWhenTheFileNameHasNoExtension() { assertEquals(DmsWatermarkTargetType.IMAGE, DmsWatermarkTargetType.from("diagram", "image/png")); assertEquals(DmsWatermarkTargetType.IMAGE, DmsWatermarkTargetType.from("diagram", "image/png; charset=binary")); assertEquals(DmsWatermarkTargetType.DOCX, DmsWatermarkTargetType.from("manual", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")); assertEquals(DmsWatermarkTargetType.PDF, DmsWatermarkTargetType.from("manual", "application/pdf; charset=binary")); } @Test void rejectsMissingAndUnsupportedFileExtensions() { assertEquals(DmsWatermarkTargetType.UNSUPPORTED, DmsWatermarkTargetType.fromFileName("manual")); assertEquals(DmsWatermarkTargetType.UNSUPPORTED, DmsWatermarkTargetType.fromFileName(null)); } }