From 69cd51d8c608d5e1aaf518195e49c46d01926c27 Mon Sep 17 00:00:00 2001 From: Markus Ofterdinger Date: Mon, 4 Nov 2024 09:38:39 +0100 Subject: [PATCH 1/3] hide fields and adapt tests --- .../handler/common/model/NodeTree.java | 7 +-- .../handler/common/model/NodeTreeTest.java | 54 +++++++++---------- 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/model/NodeTree.java b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/model/NodeTree.java index 4ae8bb2b..823072e0 100644 --- a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/model/NodeTree.java +++ b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/model/NodeTree.java @@ -4,6 +4,7 @@ package com.sap.cds.feature.attachments.handler.common.model; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -11,8 +12,8 @@ */ public class NodeTree { - final AssociationIdentifier identifier; - final List children = new ArrayList<>(); + private final AssociationIdentifier identifier; + private final List children = new ArrayList<>(); public NodeTree(AssociationIdentifier identifier) { this.identifier = identifier; @@ -52,7 +53,7 @@ public AssociationIdentifier getIdentifier() { } public List getChildren() { - return children; + return Collections.unmodifiableList(children); } @Override diff --git a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/common/model/NodeTreeTest.java b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/common/model/NodeTreeTest.java index a6c4b613..cafe1f1e 100644 --- a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/common/model/NodeTreeTest.java +++ b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/common/model/NodeTreeTest.java @@ -22,7 +22,7 @@ void singlePathEntryWorksCorrectly(String associationName) { var cut = new NodeTree(identifier); cut.addPath(List.of(identifier)); - assertThat(cut.children).isEmpty(); + assertThat(cut.getChildren()).isEmpty(); } @Test @@ -65,26 +65,26 @@ void addComplexPathWithMultipleChildren() { cut.addPath(List.of(identifier1, identifier4, identifier2, identifier3)); cut.addPath(List.of(identifier1, identifier4, identifier4)); - assertThat(cut.children).hasSize(3); - assertThat(cut.children.get(0).identifier).isEqualTo(identifier2); - assertThat(cut.children.get(0).children).hasSize(1); - assertThat(cut.children.get(0).children.get(0).identifier).isEqualTo(identifier3); - assertThat(cut.children.get(0).children.get(0).children).isNotNull().isEmpty(); - - assertThat(cut.children.get(1).identifier).isEqualTo(identifier3); - assertThat(cut.children.get(1).children).hasSize(1); - assertThat(cut.children.get(1).children.get(0).identifier).isEqualTo(identifier4); - assertThat(cut.children.get(1).children.get(0).children).isNotNull().isEmpty(); - - assertThat(cut.children.get(2).identifier).isEqualTo(identifier4); - assertThat(cut.children.get(2).children).hasSize(2); - assertThat(cut.children.get(2).children.get(0).identifier).isEqualTo(identifier2); - assertThat(cut.children.get(2).children.get(0).children).hasSize(1); - assertThat(cut.children.get(2).children.get(0).children.get(0).identifier).isEqualTo(identifier3); - assertThat(cut.children.get(2).children.get(0).children.get(0).children).isNotNull().isEmpty(); - - assertThat(cut.children.get(2).children.get(1).identifier).isEqualTo(identifier4); - assertThat(cut.children.get(2).children.get(1).children).isNotNull().isEmpty(); + assertThat(cut.getChildren()).hasSize(3); + assertThat(cut.getChildren().get(0).getIdentifier()).isEqualTo(identifier2); + assertThat(cut.getChildren().get(0).getChildren()).hasSize(1); + assertThat(cut.getChildren().get(0).getChildren().get(0).getIdentifier()).isEqualTo(identifier3); + assertThat(cut.getChildren().get(0).getChildren().get(0).getChildren()).isNotNull().isEmpty(); + + assertThat(cut.getChildren().get(1).getIdentifier()).isEqualTo(identifier3); + assertThat(cut.getChildren().get(1).getChildren()).hasSize(1); + assertThat(cut.getChildren().get(1).getChildren().get(0).getIdentifier()).isEqualTo(identifier4); + assertThat(cut.getChildren().get(1).getChildren().get(0).getChildren()).isNotNull().isEmpty(); + + assertThat(cut.getChildren().get(2).getIdentifier()).isEqualTo(identifier4); + assertThat(cut.getChildren().get(2).getChildren()).hasSize(2); + assertThat(cut.getChildren().get(2).getChildren().get(0).getIdentifier()).isEqualTo(identifier2); + assertThat(cut.getChildren().get(2).getChildren().get(0).getChildren()).hasSize(1); + assertThat(cut.getChildren().get(2).getChildren().get(0).getChildren().get(0).getIdentifier()).isEqualTo(identifier3); + assertThat(cut.getChildren().get(2).getChildren().get(0).getChildren().get(0).getChildren()).isNotNull().isEmpty(); + + assertThat(cut.getChildren().get(2).getChildren().get(1).getIdentifier()).isEqualTo(identifier4); + assertThat(cut.getChildren().get(2).getChildren().get(1).getChildren()).isNotNull().isEmpty(); } @Test @@ -96,16 +96,16 @@ void nodeNotInPathWillDoNothing() { var cut = new NodeTree(identifier1); cut.addPath(List.of(identifier2, identifier3)); - assertThat(cut.children).isEmpty(); + assertThat(cut.getChildren()).isEmpty(); } private void verifyTwoNodeHierarchies(NodeTree cut, AssociationIdentifier identifier2, AssociationIdentifier identifier3) { - assertThat(cut.children).hasSize(1); - assertThat(cut.children.get(0).identifier).isEqualTo(identifier2); - assertThat(cut.children.get(0).children).hasSize(1); - assertThat(cut.children.get(0).children.get(0).identifier).isEqualTo(identifier3); - assertThat(cut.children.get(0).children.get(0).children).isEmpty(); + assertThat(cut.getChildren()).hasSize(1); + assertThat(cut.getChildren().get(0).getIdentifier()).isEqualTo(identifier2); + assertThat(cut.getChildren().get(0).getChildren()).hasSize(1); + assertThat(cut.getChildren().get(0).getChildren().get(0).getIdentifier()).isEqualTo(identifier3); + assertThat(cut.getChildren().get(0).getChildren().get(0).getChildren()).isEmpty(); } } From 828a04b9bc2b02d091ee3bbc784c4dfba886a6b0 Mon Sep 17 00:00:00 2001 From: Markus Ofterdinger Date: Mon, 4 Nov 2024 09:46:28 +0100 Subject: [PATCH 2/3] Don't read annotations from base entity, not required --- .../handler/applicationservice/ReadAttachmentsHandler.java | 3 +-- .../handler/common/ApplicationHandlerHelper.java | 7 ------- .../handler/common/DefaultAssociationCascader.java | 3 +-- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/applicationservice/ReadAttachmentsHandler.java b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/applicationservice/ReadAttachmentsHandler.java index b86ef800..964c5e13 100644 --- a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/applicationservice/ReadAttachmentsHandler.java +++ b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/applicationservice/ReadAttachmentsHandler.java @@ -110,8 +110,7 @@ public void processAfter(CdsReadEventContext context, List data) { private List getAttachmentAssociations(CdsModel model, CdsEntity entity, String associationName, List processedEntities) { var associationNames = new ArrayList(); - var baseEntity = ApplicationHandlerHelper.getBaseEntity(model, entity); - if (ApplicationHandlerHelper.isMediaEntity(baseEntity)) { + if (ApplicationHandlerHelper.isMediaEntity(entity)) { associationNames.add(associationName); } diff --git a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/ApplicationHandlerHelper.java b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/ApplicationHandlerHelper.java index fbc27955..d35baa2d 100644 --- a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/ApplicationHandlerHelper.java +++ b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/ApplicationHandlerHelper.java @@ -19,10 +19,8 @@ import com.sap.cds.feature.attachments.handler.constants.ModelConstants; import com.sap.cds.reflect.CdsElement; import com.sap.cds.reflect.CdsEntity; -import com.sap.cds.reflect.CdsModel; import com.sap.cds.reflect.CdsStructuredType; import com.sap.cds.services.draft.Drafts; -import com.sap.cds.services.utils.model.CdsModelUtils; /** * The class {@link ApplicationHandlerHelper} provides helper methods for the attachment application handlers. @@ -96,11 +94,6 @@ public static Map removeDraftKeys(Map keys) { return keyMap; } - public static CdsEntity getBaseEntity(CdsModel model, CdsEntity entity) { - var entityResultOptional = entity.query().map(q -> CdsModelUtils.getEntityPath(q, model).rootEntity()); - return entityResultOptional.orElseGet(() -> model.findEntity(entity.getQualifiedName()).orElseThrow()); - } - private static boolean hasElementAnnotation(CdsElement element, String annotation) { return element.findAnnotation(annotation).isPresent(); } diff --git a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/DefaultAssociationCascader.java b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/DefaultAssociationCascader.java index 5ab74ed6..31c821c2 100644 --- a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/DefaultAssociationCascader.java +++ b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/common/DefaultAssociationCascader.java @@ -51,8 +51,7 @@ private List> getAttachmentAssociationPath(Cds var localProcessEntities = new ArrayList(); currentList.set(new LinkedList<>()); - var baseEntity = ApplicationHandlerHelper.getBaseEntity(model, entity); - var isMediaEntity = ApplicationHandlerHelper.isMediaEntity(baseEntity); + var isMediaEntity = ApplicationHandlerHelper.isMediaEntity(entity); if (isMediaEntity) { var identifier = new AssociationIdentifier(associationName, entity.getQualifiedName()); firstList.addLast(identifier); From 6c42b49e58137518389ca7beef219e1754a55755 Mon Sep 17 00:00:00 2001 From: Markus Ofterdinger Date: Mon, 4 Nov 2024 10:23:27 +0100 Subject: [PATCH 3/3] fixed sonar smells --- .../EndTransactionMalwareScanRunner.java | 2 +- .../attachments/RegistrationFileTest.java | 3 +- .../CreateAttachmentsHandlerTest.java | 11 +++--- .../UpdateAttachmentsHandlerTest.java | 35 +++++++++---------- .../MarkAsDeletedAttachmentEventTest.java | 5 ++- .../EndTransactionMalwareScanRunnerTest.java | 10 +++--- .../testhandler/TestPersistenceHandler.java | 7 ++-- .../DraftOdataRequestValidationBase.java | 4 +-- ...thoutTestHandlerAndMalwareScannerTest.java | 5 ++- ...thoutTestHandlerAndMalwareScannerTest.java | 5 ++- 10 files changed, 46 insertions(+), 41 deletions(-) diff --git a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/handler/transaction/EndTransactionMalwareScanRunner.java b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/handler/transaction/EndTransactionMalwareScanRunner.java index 0ccaef76..7aa65597 100644 --- a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/handler/transaction/EndTransactionMalwareScanRunner.java +++ b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/handler/transaction/EndTransactionMalwareScanRunner.java @@ -46,7 +46,7 @@ private void startScanning(CdsEntity attachmentEntityToScan, String contentId) { logger.debug("Transaction completed. Starting to scan attachment asynchronously."); Supplier executeAdapterSupplier = () -> { // run malware scan asynchronously with current request context - runner.run((context) -> { + runner.run(context -> { logger.info("Starting to scan attachment"); attachmentMalwareScanner.scanAttachment(attachmentEntityToScan, contentId); }); diff --git a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/RegistrationFileTest.java b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/RegistrationFileTest.java index 040a86d6..5e7ea7cc 100644 --- a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/RegistrationFileTest.java +++ b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/RegistrationFileTest.java @@ -7,7 +7,6 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; -import java.util.stream.Collectors; import org.junit.jupiter.api.Test; @@ -20,7 +19,7 @@ void registrationFileAvailable() throws IOException { String path = "src/main/resources/META-INF/services/com.sap.cds.services.runtime.CdsRuntimeConfiguration"; BufferedReader reader = Files.newBufferedReader(Paths.get(path)); - List classes = reader.lines().collect(Collectors.toList()); + List classes = reader.lines().toList(); reader.close(); String runtimeRegistrationName = Registration.class.getCanonicalName(); diff --git a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/CreateAttachmentsHandlerTest.java b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/CreateAttachmentsHandlerTest.java index 51748734..e7d34409 100644 --- a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/CreateAttachmentsHandlerTest.java +++ b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/CreateAttachmentsHandlerTest.java @@ -125,9 +125,9 @@ void readonlyDataFilledForDraftActivate() { verifyNoInteractions(eventFactory, event); assertThat(attachment.get(DRAFT_READONLY_CONTEXT)).isNotNull(); var readOnlyData = (CdsData) attachment.get(DRAFT_READONLY_CONTEXT); - assertThat(readOnlyData).containsEntry(Attachment.CONTENT_ID, attachment.getContentId()); - assertThat(readOnlyData).containsEntry(Attachment.STATUS, attachment.getStatus()); - assertThat(readOnlyData).containsEntry(Attachment.SCANNED_AT, attachment.getScannedAt()); + assertThat(readOnlyData).containsEntry(Attachment.CONTENT_ID, attachment.getContentId()) + .containsEntry(Attachment.STATUS, attachment.getStatus()) + .containsEntry(Attachment.SCANNED_AT, attachment.getScannedAt()); } @Test @@ -149,9 +149,8 @@ void readonlyDataClearedIfNotDraftActivate() { verifyNoInteractions(eventFactory, event); assertThat(createAttachment.get(DRAFT_READONLY_CONTEXT)).isNull(); - assertThat(createAttachment).containsEntry(Attachment.CONTENT_ID, contentId); - assertThat(createAttachment).doesNotContainKey(Attachment.STATUS); - assertThat(createAttachment).doesNotContainKey(Attachment.SCANNED_AT); + assertThat(createAttachment).containsEntry(Attachment.CONTENT_ID, contentId) + .doesNotContainKey(Attachment.STATUS).doesNotContainKey(Attachment.SCANNED_AT); } @Test diff --git a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/UpdateAttachmentsHandlerTest.java b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/UpdateAttachmentsHandlerTest.java index 6e9fb1db..38fac8c8 100644 --- a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/UpdateAttachmentsHandlerTest.java +++ b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/UpdateAttachmentsHandlerTest.java @@ -52,7 +52,7 @@ class UpdateAttachmentsHandlerTest { - private static final String UP__ID = "up__ID"; + private static final String UP_ID = "up__ID"; private static final String DRAFT_READONLY_CONTEXT = "DRAFT_READONLY_CONTEXT"; private static CdsRuntime runtime; @@ -156,9 +156,9 @@ void readonlyDataFilledForDraftActivate() { verifyNoInteractions(eventFactory, event); assertThat(updateAttachment.get(DRAFT_READONLY_CONTEXT)).isNotNull(); var readOnlyUpdateData = (CdsData) updateAttachment.get(DRAFT_READONLY_CONTEXT); - assertThat(readOnlyUpdateData).containsEntry(Attachment.CONTENT_ID, updateAttachment.getContentId()); - assertThat(readOnlyUpdateData).containsEntry(Attachment.STATUS, updateAttachment.getStatus()); - assertThat(readOnlyUpdateData).containsEntry(Attachment.SCANNED_AT, updateAttachment.getScannedAt()); + assertThat(readOnlyUpdateData).containsEntry(Attachment.CONTENT_ID, updateAttachment.getContentId()) + .containsEntry(Attachment.STATUS, updateAttachment.getStatus()) + .containsEntry(Attachment.SCANNED_AT, updateAttachment.getScannedAt()); } @Test @@ -180,9 +180,8 @@ void readonlyDataClearedIfNotDraftActivate() { verifyNoInteractions(eventFactory, event); assertThat(updateAttachment.get(DRAFT_READONLY_CONTEXT)).isNull(); - assertThat(updateAttachment).containsEntry(Attachment.CONTENT_ID, contentId); - assertThat(updateAttachment).doesNotContainKey(Attachment.STATUS); - assertThat(updateAttachment).doesNotContainKey(Attachment.SCANNED_AT); + assertThat(updateAttachment).containsEntry(Attachment.CONTENT_ID, contentId) + .doesNotContainKey(Attachment.STATUS).doesNotContainKey(Attachment.SCANNED_AT); } @Test @@ -280,7 +279,7 @@ void noKeysNoException() { void selectIsUsedWithFilterAndWhere() { var attachment = Attachments.create(); attachment.setId(UUID.randomUUID().toString()); - attachment.put(UP__ID, "test_full"); + attachment.put(UP_ID, "test_full"); attachment.setContent(mock(InputStream.class)); var entityWithKeys = CQL.entity(Attachment_.CDS_NAME).matching(getAttachmentKeyMap(attachment)); CqnUpdate update = Update.entity(entityWithKeys).byId("test"); @@ -293,14 +292,14 @@ void selectIsUsedWithFilterAndWhere() { var select = selectCaptor.getValue(); assertThat(select.toString()).contains(getRefString("$key", "test")); assertThat(select.toString()).contains(getRefString(Attachment.ID, attachment.getId())); - assertThat(select.toString()).contains(getRefString(UP__ID, (String) attachment.get(UP__ID))); + assertThat(select.toString()).contains(getRefString(UP_ID, (String) attachment.get(UP_ID))); } @Test void selectIsUsedWithFilter() { var attachment = Attachments.create(); attachment.setId(UUID.randomUUID().toString()); - attachment.put(UP__ID, "test_filter"); + attachment.put(UP_ID, "test_filter"); attachment.setContent(mock(InputStream.class)); var entityWithKeys = CQL.entity(Attachment_.CDS_NAME).matching(getAttachmentKeyMap(attachment)); CqnUpdate update = Update.entity(entityWithKeys); @@ -312,14 +311,14 @@ void selectIsUsedWithFilter() { verify(attachmentsReader).readAttachments(eq(runtime.getCdsModel()), eq(serviceEntity), selectCaptor.capture()); var select = selectCaptor.getValue(); assertThat(select.toString()).contains(getRefString(Attachment.ID, attachment.getId())); - assertThat(select.toString()).contains(getRefString(UP__ID, (String) attachment.get(UP__ID))); + assertThat(select.toString()).contains(getRefString(UP_ID, (String) attachment.get(UP_ID))); } @Test void selectIsUsedWithWhere() { var attachment = Attachments.create(); attachment.setId(UUID.randomUUID().toString()); - attachment.put(UP__ID, "test_where"); + attachment.put(UP_ID, "test_where"); attachment.setContent(mock(InputStream.class)); CqnUpdate update = Update.entity(Attachment_.CDS_NAME).byId("test"); var serviceEntity = runtime.getCdsModel().findEntity(Attachment_.CDS_NAME).orElseThrow(); @@ -330,7 +329,7 @@ void selectIsUsedWithWhere() { verify(attachmentsReader).readAttachments(eq(runtime.getCdsModel()), eq(serviceEntity), selectCaptor.capture()); var select = selectCaptor.getValue(); assertThat(select.toString()).doesNotContain(Attachment.ID); - assertThat(select.toString()).doesNotContain(UP__ID); + assertThat(select.toString()).doesNotContain(UP_ID); assertThat(select.toString()).contains(getRefString("$key", "test")); } @@ -338,7 +337,7 @@ void selectIsUsedWithWhere() { void selectIsUsedWithAttachmentId() { var attachment = Attachments.create(); attachment.setId(UUID.randomUUID().toString()); - attachment.put(UP__ID, "test_up_id"); + attachment.put(UP_ID, "test_up_id"); attachment.setContent(mock(InputStream.class)); var serviceEntity = runtime.getCdsModel().findEntity(Attachment_.CDS_NAME).orElseThrow(); CqnUpdate update = Update.entity(Attachment_.class).where(entity -> entity.ID().eq(attachment.getId())); @@ -349,18 +348,18 @@ void selectIsUsedWithAttachmentId() { verify(attachmentsReader).readAttachments(eq(runtime.getCdsModel()), eq(serviceEntity), selectCaptor.capture()); var select = selectCaptor.getValue(); assertThat(select.toString()).contains(getRefString(Attachment.ID, attachment.getId())); - assertThat(select.toString()).doesNotContain(UP__ID); + assertThat(select.toString()).doesNotContain(UP_ID); } @Test void selectIsCorrectForMultipleAttachments() { var attachment1 = Attachments.create(); attachment1.setId(UUID.randomUUID().toString()); - attachment1.put(UP__ID, "test_multiple 2"); + attachment1.put(UP_ID, "test_multiple 2"); attachment1.setContent(mock(InputStream.class)); var attachment2 = Attachments.create(); attachment2.setId(UUID.randomUUID().toString()); - attachment2.put(UP__ID, "test_multiple 2"); + attachment2.put(UP_ID, "test_multiple 2"); attachment2.setContent(mock(InputStream.class)); CqnUpdate update = Update.entity(Attachment_.class).where( attachment -> attachment.ID().eq(attachment1.getId()).or(attachment.ID().eq(attachment2.getId()))); @@ -466,7 +465,7 @@ private void mockTargetInUpdateContext(CdsEntity serviceEntity, CqnUpdate update } private Map getAttachmentKeyMap(Attachments attachment) { - return Map.of(Attachment.ID, attachment.getId(), "up__ID", attachment.get(UP__ID)); + return Map.of(Attachment.ID, attachment.getId(), "up__ID", attachment.get(UP_ID)); } private String getRefString(String key, String value) { diff --git a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/processor/modifyevents/MarkAsDeletedAttachmentEventTest.java b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/processor/modifyevents/MarkAsDeletedAttachmentEventTest.java index 4ce6fbc0..fc4ef205 100644 --- a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/processor/modifyevents/MarkAsDeletedAttachmentEventTest.java +++ b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/processor/modifyevents/MarkAsDeletedAttachmentEventTest.java @@ -67,9 +67,8 @@ void documentIsExternallyDeleted() { verify(attachmentService).markAttachmentAsDeleted(deletionInputCaptor.capture()); assertThat(deletionInputCaptor.getValue().contentId()).isEqualTo(contentId); assertThat(deletionInputCaptor.getValue().userInfo()).isEqualTo(userInfo); - assertThat(currentData).containsEntry(Attachments.CONTENT_ID, null); - assertThat(currentData).containsEntry(Attachments.STATUS, null); - assertThat(currentData).containsEntry(Attachments.SCANNED_AT, null); + assertThat(currentData).containsEntry(Attachments.CONTENT_ID, null).containsEntry(Attachments.STATUS, null) + .containsEntry(Attachments.SCANNED_AT, null); } @Test diff --git a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/handler/transaction/EndTransactionMalwareScanRunnerTest.java b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/handler/transaction/EndTransactionMalwareScanRunnerTest.java index 2518d8c6..908694fd 100644 --- a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/handler/transaction/EndTransactionMalwareScanRunnerTest.java +++ b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/handler/transaction/EndTransactionMalwareScanRunnerTest.java @@ -63,7 +63,7 @@ void tearDown() { @Test void notCompletedTransactionDoNothing() { var executionDone = new AtomicBoolean(); - doAnswer((invocation) -> { + doAnswer(invocation -> { executionDone.set(true); return null; }).when(attachmentMalwareScanner).scanAttachment(attachmentEntity, contentId); @@ -82,7 +82,7 @@ void notCompletedTransactionDoNothing() { void completedTransactionScanAttachments() { var executionDone = new AtomicBoolean(); var usedThread = new AtomicReference(); - doAnswer((invocation) -> { + doAnswer(invocation -> { executionDone.set(true); usedThread.set(Thread.currentThread().getName()); return null; @@ -97,7 +97,7 @@ void completedTransactionScanAttachments() { @Test void exceptionDuringScanningLogged() { - doAnswer((invocation) -> { + doAnswer(invocation -> { throw new RuntimeException("Some exception"); }).when(attachmentMalwareScanner).scanAttachment(attachmentEntity, contentId); observer.start(); @@ -111,7 +111,7 @@ void exceptionDuringScanningLogged() { void directScanCallScanAttachments() { var executionDone = new AtomicBoolean(); var usedThread = new AtomicReference(); - doAnswer((invocation) -> { + doAnswer(invocation -> { executionDone.set(true); usedThread.set(Thread.currentThread().getName()); return null; @@ -126,7 +126,7 @@ void directScanCallScanAttachments() { @Test void exceptionDuringScanningLoggedForDirectScanCall() { - doAnswer((invocation) -> { + doAnswer(invocation -> { throw new RuntimeException("Some exception"); }).when(attachmentMalwareScanner).scanAttachment(attachmentEntity, contentId); observer.start(); diff --git a/integration-tests/srv/src/main/java/com/sap/cds/feature/attachments/integrationtests/testhandler/TestPersistenceHandler.java b/integration-tests/srv/src/main/java/com/sap/cds/feature/attachments/integrationtests/testhandler/TestPersistenceHandler.java index 7985b727..74ec8edc 100644 --- a/integration-tests/srv/src/main/java/com/sap/cds/feature/attachments/integrationtests/testhandler/TestPersistenceHandler.java +++ b/integration-tests/srv/src/main/java/com/sap/cds/feature/attachments/integrationtests/testhandler/TestPersistenceHandler.java @@ -1,5 +1,8 @@ package com.sap.cds.feature.attachments.integrationtests.testhandler; +import static com.sap.cds.services.cds.CqnService.EVENT_CREATE; +import static com.sap.cds.services.cds.CqnService.EVENT_UPDATE; + import org.springframework.stereotype.Component; import com.sap.cds.services.ServiceException; @@ -15,14 +18,14 @@ public class TestPersistenceHandler implements EventHandler { private boolean throwExceptionOnUpdate = false; private boolean throwExceptionOnCreate = false; - @Before(event = PersistenceService.EVENT_UPDATE) + @Before(event = EVENT_UPDATE) public void throwExceptionOnUpdate() { if (throwExceptionOnUpdate) { throw new ServiceException("Exception on update"); } } - @Before(event = PersistenceService.EVENT_CREATE) + @Before(event = EVENT_CREATE) public void throwExceptionOnCreate() { if (throwExceptionOnCreate) { throw new ServiceException("Exception on create"); diff --git a/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/draftservice/DraftOdataRequestValidationBase.java b/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/draftservice/DraftOdataRequestValidationBase.java index 999c8830..00bbc747 100644 --- a/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/draftservice/DraftOdataRequestValidationBase.java +++ b/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/draftservice/DraftOdataRequestValidationBase.java @@ -42,8 +42,8 @@ abstract class DraftOdataRequestValidationBase { protected static final Logger logger = LoggerFactory.getLogger(DraftOdataRequestValidationBase.class); - private final static String BASE_URL = MockHttpRequestHelper.ODATA_BASE_URL + "TestDraftService/"; - private final static String BASE_ROOT_URL = BASE_URL + "DraftRoots"; + private static final String BASE_URL = MockHttpRequestHelper.ODATA_BASE_URL + "TestDraftService/"; + private static final String BASE_ROOT_URL = BASE_URL + "DraftRoots"; @Autowired(required = false) protected TestPluginAttachmentsServiceHandler serviceHandler; @Autowired diff --git a/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/draftservice/DraftOdataRequestValidationWithoutTestHandlerAndMalwareScannerTest.java b/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/draftservice/DraftOdataRequestValidationWithoutTestHandlerAndMalwareScannerTest.java index f74a0d3e..617c88db 100644 --- a/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/draftservice/DraftOdataRequestValidationWithoutTestHandlerAndMalwareScannerTest.java +++ b/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/draftservice/DraftOdataRequestValidationWithoutTestHandlerAndMalwareScannerTest.java @@ -1,6 +1,8 @@ package com.sap.cds.feature.attachments.integrationtests.draftservice; -import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; import static org.assertj.core.api.Assertions.assertThat; import java.util.concurrent.TimeUnit; @@ -39,6 +41,7 @@ void setup() { mockMalwareScanResult(false); } + @Override @AfterEach void teardown() { super.teardown(); diff --git a/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/nondraftservice/OdataRequestValidationWithoutTestHandlerAndMalwareScannerTest.java b/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/nondraftservice/OdataRequestValidationWithoutTestHandlerAndMalwareScannerTest.java index d4803c8e..ea6df9be 100644 --- a/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/nondraftservice/OdataRequestValidationWithoutTestHandlerAndMalwareScannerTest.java +++ b/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/nondraftservice/OdataRequestValidationWithoutTestHandlerAndMalwareScannerTest.java @@ -1,6 +1,8 @@ package com.sap.cds.feature.attachments.integrationtests.nondraftservice; -import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; import static org.assertj.core.api.Assertions.assertThat; import java.util.concurrent.TimeUnit; @@ -36,6 +38,7 @@ void setup() { mockMalwareScanResult(false); } + @Override @AfterEach void teardown() { super.teardown();