diff --git a/allure-java-migration/src/main/java/io/qameta/allure/aspects/Allure1AttachAspects.java b/allure-java-migration/src/main/java/io/qameta/allure/aspects/Allure1AttachAspects.java index 927941f5..d4bb1869 100644 --- a/allure-java-migration/src/main/java/io/qameta/allure/aspects/Allure1AttachAspects.java +++ b/allure-java-migration/src/main/java/io/qameta/allure/aspects/Allure1AttachAspects.java @@ -53,7 +53,7 @@ public void attachment(final JoinPoint joinPoint, final Object result) { ); final byte[] bytes = (result instanceof byte[]) - ? (byte[]) result : result.toString().getBytes(StandardCharsets.UTF_8); + ? (byte[]) result : Objects.toString(result).getBytes(StandardCharsets.UTF_8); getLifecycle().addAttachment(title, attachment.type(), "", bytes); } diff --git a/allure-java-migration/src/test/java/io/qameta/allure/aspects/Allure1AttachAspectsTest.java b/allure-java-migration/src/test/java/io/qameta/allure/aspects/Allure1AttachAspectsTest.java index 09185f37..6141769d 100644 --- a/allure-java-migration/src/test/java/io/qameta/allure/aspects/Allure1AttachAspectsTest.java +++ b/allure-java-migration/src/test/java/io/qameta/allure/aspects/Allure1AttachAspectsTest.java @@ -70,6 +70,30 @@ public void shouldSetupAttachmentTitleFromMethodSignature() { } + @Test + public void shouldProcessNullAttachment() throws Exception { + final String uuid = UUID.randomUUID().toString(); + final TestResult result = new TestResult().withUuid(uuid); + + lifecycle.scheduleTestCase(result); + lifecycle.startTestCase(uuid); + + attachmentWithNullValue(); + + lifecycle.stopTestCase(uuid); + lifecycle.writeTestCase(uuid); + + assertThat(results.getTestResults()) + .flatExtracting(TestResult::getAttachments) + .extracting("name", "type") + .containsExactly(tuple("attachmentWithNullValue", null)); + } + + @Attachment + public byte[] attachmentWithNullValue() { + return null; + } + @Attachment public byte[] attachmentWithoutTitle() { return new byte[]{};