Skip to content

Commit 71b7730

Browse files
authored
Removed not required parameter contentIdExist (#260)
1 parent 7a92bfc commit 71b7730

File tree

7 files changed

+46
-64
lines changed

7 files changed

+46
-64
lines changed

cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/applicationservice/helper/ModifyApplicationHandlerHelper.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,10 @@ public static InputStream handleAttachmentForEntity(List<CdsData> existingDataLi
4545
var keys = ApplicationHandlerHelper.removeDraftKeys(path.target().keys());
4646
ReadonlyDataContextEnhancer.fillReadonlyInContext((CdsData) path.target().values());
4747
var existingData = getExistingData(keys, existingDataList);
48-
var contentIdExists = path.target().values().containsKey(Attachments.CONTENT_ID);
4948
var contentId = (String) path.target().values().get(Attachments.CONTENT_ID);
5049

5150
// for the current request find the event to process
52-
ModifyAttachmentEvent eventToProcess = eventFactory.getEvent(content, contentId, contentIdExists, existingData);
51+
ModifyAttachmentEvent eventToProcess = eventFactory.getEvent(content, contentId, existingData);
5352

5453
// process the event
5554
return eventToProcess.processEvent(path, content, existingData, eventContext);

cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/applicationservice/processor/modifyevents/DefaultModifyAttachmentEventFactory.java

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,9 @@
1212
import com.sap.cds.feature.attachments.service.AttachmentService;
1313

1414
/**
15-
* The class {@link DefaultModifyAttachmentEventFactory} is a factory class
16-
* that creates the corresponding event for the attachment service {@link AttachmentService}.
17-
* The class is used to determine the event that should be executed based on the content,
18-
* the contentId and the existingData.<br>
15+
* The class {@link DefaultModifyAttachmentEventFactory} is a factory class that creates the corresponding event for the
16+
* attachment service {@link AttachmentService}. The class is used to determine the event that should be executed based
17+
* on the content, the contentId and the existingData.<br>
1918
* The events could be:
2019
* <ul>
2120
* <li>create</li>
@@ -40,35 +39,23 @@ public DefaultModifyAttachmentEventFactory(ModifyAttachmentEvent createEvent, Mo
4039
}
4140

4241
@Override
43-
public ModifyAttachmentEvent getEvent(InputStream content, String contentId, boolean contentIdExist, CdsData existingData) {
42+
public ModifyAttachmentEvent getEvent(InputStream content, String contentId, CdsData existingData) {
4443
var existingContentId = existingData.get(Attachments.CONTENT_ID);
45-
var event = contentIdExist ? handleExistingContentId(content, contentId,
46-
existingContentId) : handleNonExistingContentId(content, existingContentId);
44+
var event = contentId != null ? handleExistingContentId(content, contentId, (String) existingContentId)
45+
: handleNonExistingContentId(content, existingContentId);
4746
return event.orElse(doNothingEvent);
4847
}
4948

50-
private Optional<ModifyAttachmentEvent> handleExistingContentId(Object content, String contentId,
51-
Object existingContentId) {
49+
private Optional<ModifyAttachmentEvent> handleExistingContentId(InputStream content, String contentId,
50+
String existingContentId) {
5251
ModifyAttachmentEvent event = null;
53-
if (Objects.isNull(contentId) && Objects.isNull(existingContentId) && Objects.nonNull(content)) {
54-
event = createEvent;
55-
}
56-
if (Objects.isNull(contentId) && Objects.nonNull(existingContentId)) {
57-
if (Objects.nonNull(content)) {
58-
event = updateEvent;
59-
} else {
60-
event = deleteContentEvent;
61-
}
62-
}
63-
if (Objects.nonNull(contentId) && contentId.equals(existingContentId) && Objects.nonNull(content)) {
52+
if (contentId.equals(existingContentId) && Objects.nonNull(content)) {
6453
event = updateEvent;
6554
}
66-
if (Objects.nonNull(contentId) && Objects.nonNull(existingContentId) && !contentId.equals(
67-
existingContentId) && Objects.isNull(content)) {
55+
if (Objects.nonNull(existingContentId) && !contentId.equals(existingContentId) && Objects.isNull(content)) {
6856
event = deleteContentEvent;
6957
}
70-
if (Objects.nonNull(contentId) && Objects.nonNull(existingContentId) && !contentId.equals(
71-
existingContentId) && Objects.nonNull(content)) {
58+
if (Objects.nonNull(existingContentId) && !contentId.equals(existingContentId) && Objects.nonNull(content)) {
7259
event = updateEvent;
7360
}
7461

cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/handler/applicationservice/processor/modifyevents/ModifyAttachmentEventFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,9 @@ public interface ModifyAttachmentEventFactory {
2121
*
2222
* @param content the optional content as {@link InputStream}
2323
* @param contentId the optional content id
24-
* @param contentIdExist the flag if the content id exists
2524
* @param existingData the existing {@link CdsData data}
2625
* @return the corresponding {@link ModifyAttachmentEvent} that should be executed
2726
*/
28-
ModifyAttachmentEvent getEvent(InputStream content, String contentId, boolean contentIdExist, CdsData existingData);
27+
ModifyAttachmentEvent getEvent(InputStream content, String contentId, CdsData existingData);
2928

3029
}

cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/CreateAttachmentsHandlerTest.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import static org.assertj.core.api.Assertions.assertThat;
44
import static org.junit.jupiter.api.Assertions.assertThrows;
55
import static org.mockito.ArgumentMatchers.any;
6-
import static org.mockito.ArgumentMatchers.anyBoolean;
76
import static org.mockito.Mockito.mock;
87
import static org.mockito.Mockito.verify;
98
import static org.mockito.Mockito.verifyNoInteractions;
@@ -87,7 +86,7 @@ void idsAreSetInDataForCreate() {
8786
attachment.setContent(null);
8887
attachment.put("up__ID", "test");
8988
roots.setAttachments(List.of(attachment));
90-
when(eventFactory.getEvent(any(), any(), anyBoolean(), any())).thenReturn(event);
89+
when(eventFactory.getEvent(any(), any(), any())).thenReturn(event);
9190

9291
cut.processBefore(createContext, List.of(roots));
9392

@@ -102,11 +101,11 @@ void eventProcessorCalledForCreate() throws IOException {
102101
try (var testStream = new ByteArrayInputStream("testString".getBytes(StandardCharsets.UTF_8))) {
103102
var attachment = Attachments.create();
104103
attachment.setContent(testStream);
105-
when(eventFactory.getEvent(any(), any(), anyBoolean(), any())).thenReturn(event);
104+
when(eventFactory.getEvent(any(), any(), any())).thenReturn(event);
106105

107106
cut.processBefore(createContext, List.of(attachment));
108107

109-
verify(eventFactory).getEvent(testStream, null, false, CdsData.create());
108+
verify(eventFactory).getEvent(testStream, null, CdsData.create());
110109
}
111110
}
112111

@@ -178,7 +177,7 @@ void eventProcessorNotCalledForCreateForDraft() throws IOException {
178177
try (var testStream = new ByteArrayInputStream("testString".getBytes(StandardCharsets.UTF_8))) {
179178
var attachment = Attachments.create();
180179
attachment.setContent(testStream);
181-
when(eventFactory.getEvent(any(), any(), anyBoolean(), any())).thenReturn(event);
180+
when(eventFactory.getEvent(any(), any(), any())).thenReturn(event);
182181
when(createContext.getService()).thenReturn(mock(ApplicationService.class));
183182

184183
cut.processBeforeForDraft(createContext, List.of(attachment));
@@ -193,7 +192,7 @@ void attachmentAccessExceptionCorrectHandledForCreate() {
193192
var attachment = Attachments.create();
194193
attachment.setFileName("test.txt");
195194
attachment.setContent(null);
196-
when(eventFactory.getEvent(any(), any(), anyBoolean(), any())).thenReturn(event);
195+
when(eventFactory.getEvent(any(), any(), any())).thenReturn(event);
197196
when(event.processEvent(any(), any(), any(), any())).thenThrow(new ServiceException(""));
198197

199198
List<CdsData> input = List.of(attachment);
@@ -210,7 +209,7 @@ void handlerCalledForMediaEventInAssociationIdsAreSet() {
210209
attachment.setContent(mock(InputStream.class));
211210
items.setAttachments(List.of(attachment));
212211
events.setItems(List.of(items));
213-
when(eventFactory.getEvent(any(), any(), anyBoolean(), any())).thenReturn(event);
212+
when(eventFactory.getEvent(any(), any(), any())).thenReturn(event);
214213

215214
List<CdsData> input = List.of(events);
216215
cut.processBefore(createContext, input);
@@ -232,11 +231,11 @@ void readonlyFieldsAreUsedFromOwnContext() {
232231
attachment.setContent(testStream);
233232
attachment.put("DRAFT_READONLY_CONTEXT", readonlyFields);
234233

235-
when(eventFactory.getEvent(any(), any(), anyBoolean(), any())).thenReturn(event);
234+
when(eventFactory.getEvent(any(), any(), any())).thenReturn(event);
236235

237236
cut.processBefore(createContext, List.of(attachment));
238237

239-
verify(eventFactory).getEvent(testStream, (String) readonlyFields.get(Attachment.CONTENT_ID), true, CdsData.create());
238+
verify(eventFactory).getEvent(testStream, (String) readonlyFields.get(Attachment.CONTENT_ID), CdsData.create());
240239
assertThat(attachment.get(DRAFT_READONLY_CONTEXT)).isNull();
241240
assertThat(attachment.getContentId()).isEqualTo(readonlyFields.get(Attachment.CONTENT_ID));
242241
assertThat(attachment.getStatus()).isEqualTo(readonlyFields.get(Attachment.STATUS));
@@ -253,7 +252,7 @@ void handlerCalledForNonMediaEventNothingSetAndCalled() {
253252
attachment.setContent(mock(InputStream.class));
254253
eventItems.setAttachments(List.of(attachment));
255254
events.setEventItems(List.of(eventItems));
256-
when(eventFactory.getEvent(any(), any(), anyBoolean(), any())).thenReturn(event);
255+
when(eventFactory.getEvent(any(), any(), any())).thenReturn(event);
257256

258257
List<CdsData> input = List.of(events);
259258
cut.processBefore(createContext, input);

cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/UpdateAttachmentsHandlerTest.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
55
import static org.junit.jupiter.api.Assertions.assertThrows;
66
import static org.mockito.ArgumentMatchers.any;
7-
import static org.mockito.ArgumentMatchers.anyBoolean;
87
import static org.mockito.ArgumentMatchers.eq;
98
import static org.mockito.Mockito.mock;
109
import static org.mockito.Mockito.verify;
@@ -85,7 +84,7 @@ void setup() {
8584
updateContext = mock(CdsUpdateEventContext.class);
8685
cdsDataArgumentCaptor = ArgumentCaptor.forClass(CdsData.class);
8786
selectCaptor = ArgumentCaptor.forClass(CqnSelect.class);
88-
when(eventFactory.getEvent(any(), any(), anyBoolean(), any())).thenReturn(event);
87+
when(eventFactory.getEvent(any(), any(), any())).thenReturn(event);
8988
userInfo = mock(UserInfo.class);
9089
}
9190

@@ -113,7 +112,7 @@ void eventProcessorCalledForUpdate() {
113112

114113
cut.processBefore(updateContext, List.of(attachment));
115114

116-
verify(eventFactory).getEvent(testStream, null, false, attachment);
115+
verify(eventFactory).getEvent(testStream, null, attachment);
117116
}
118117

119118
@Test
@@ -129,11 +128,11 @@ void readonlyFieldsAreUsedFromOwnContext() {
129128
attachment.setContent(testStream);
130129
attachment.put("DRAFT_READONLY_CONTEXT", readonlyUpdateFields);
131130

132-
when(eventFactory.getEvent(any(), any(), anyBoolean(), any())).thenReturn(event);
131+
when(eventFactory.getEvent(any(), any(), any())).thenReturn(event);
133132

134133
cut.processBefore(updateContext, List.of(attachment));
135134

136-
verify(eventFactory).getEvent(testStream, (String) readonlyUpdateFields.get(Attachment.CONTENT_ID), true,
135+
verify(eventFactory).getEvent(testStream, (String) readonlyUpdateFields.get(Attachment.CONTENT_ID),
137136
CdsData.create());
138137
assertThat(attachment.get(DRAFT_READONLY_CONTEXT)).isNull();
139138
assertThat(attachment.getContentId()).isEqualTo(readonlyUpdateFields.get(Attachment.CONTENT_ID));
@@ -242,7 +241,7 @@ void existingDataFoundAndUsed() {
242241

243242
cut.processBefore(updateContext, List.of(root));
244243

245-
verify(eventFactory).getEvent(eq(testStream), eq(null), eq(false), cdsDataArgumentCaptor.capture());
244+
verify(eventFactory).getEvent(eq(testStream), eq(null), cdsDataArgumentCaptor.capture());
246245
assertThat(cdsDataArgumentCaptor.getValue()).isEqualTo(root.getAttachments().get(0));
247246
cdsDataArgumentCaptor.getAllValues().clear();
248247
verify(event).processEvent(any(), eq(testStream), cdsDataArgumentCaptor.capture(), eq(updateContext));
@@ -259,7 +258,7 @@ void noExistingDataFound() {
259258

260259
cut.processBefore(updateContext, List.of(root));
261260

262-
verify(eventFactory).getEvent(testStream, null, false, CdsData.create());
261+
verify(eventFactory).getEvent(testStream, null, CdsData.create());
263262
}
264263

265264
@Test

cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/applicationservice/processor/modifyevents/DefaultModifyAttachmentEventFactoryTest.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ void setup() {
3535

3636
@Test
3737
void allNullNothingToDo() {
38-
var event = cut.getEvent(null, null, true, CdsData.create());
38+
var event = cut.getEvent(null, null, CdsData.create());
3939

4040
assertThat(event).isEqualTo(doNothingEvent);
4141
}
4242

4343
@Test
4444
void contentIdsNullContentFilledReturnedCreateEvent() {
45-
var event = cut.getEvent(mock(InputStream.class), null, true, CdsData.create());
45+
var event = cut.getEvent(mock(InputStream.class), null, CdsData.create());
4646

4747
assertThat(event).isEqualTo(createEvent);
4848
}
@@ -52,7 +52,7 @@ void contentIdNullButtExistingNotNullReturnsDelete() {
5252
var data = CdsData.create();
5353
data.put(Attachments.CONTENT_ID, "someValue");
5454

55-
var event = cut.getEvent(null, null, true, data);
55+
var event = cut.getEvent(null, null, data);
5656

5757
assertThat(event).isEqualTo(deleteContentEvent);
5858
}
@@ -63,7 +63,7 @@ void contentIdsSameContentFillReturnsUpdate() {
6363
var data = CdsData.create();
6464
data.put(Attachments.CONTENT_ID, contentId);
6565

66-
var event = cut.getEvent(mock(InputStream.class), contentId, true, data);
66+
var event = cut.getEvent(mock(InputStream.class), contentId, data);
6767

6868
assertThat(event).isEqualTo(updateEvent);
6969
}
@@ -76,7 +76,7 @@ void contentIdNotPresentAndExistingNotNullReturnsUpdateEvent(String contentId) {
7676
var data = CdsData.create();
7777
data.put(Attachments.CONTENT_ID, "someValue");
7878

79-
var event = cut.getEvent(mock(InputStream.class), contentId, false, data);
79+
var event = cut.getEvent(mock(InputStream.class), contentId, data);
8080

8181
assertThat(event).isEqualTo(updateEvent);
8282
}
@@ -87,7 +87,7 @@ void contentIdsSameContentNullReturnsNothingToDo() {
8787
var data = CdsData.create();
8888
data.put(Attachments.CONTENT_ID, contentId);
8989

90-
var event = cut.getEvent(null, contentId, true, data);
90+
var event = cut.getEvent(null, contentId, data);
9191

9292
assertThat(event).isEqualTo(doNothingEvent);
9393
}
@@ -100,7 +100,7 @@ void contentIdNotPresentAndExistingNotNullReturnsDeleteEvent(String contentId) {
100100
var data = CdsData.create();
101101
data.put(Attachments.CONTENT_ID, "someValue");
102102

103-
var event = cut.getEvent(null, contentId, false, data);
103+
var event = cut.getEvent(null, contentId, data);
104104

105105
assertThat(event).isEqualTo(deleteContentEvent);
106106
}
@@ -112,24 +112,24 @@ void contentIdPresentAndExistingNotNullButDifferentReturnsDeleteEvent(String con
112112
var data = CdsData.create();
113113
data.put(Attachments.CONTENT_ID, "someValue");
114114

115-
var event = cut.getEvent(null, contentId, true, data);
115+
var event = cut.getEvent(null, contentId, data);
116116

117117
assertThat(event).isEqualTo(deleteContentEvent);
118118
}
119119

120120
@Test
121121
void contentIdPresentAndExistingIdIsNullReturnsNothingToDo() {
122-
var event = cut.getEvent(mock(InputStream.class), "test", true, CdsData.create());
122+
var event = cut.getEvent(mock(InputStream.class), "test", CdsData.create());
123123

124124
assertThat(event).isEqualTo(doNothingEvent);
125125
}
126126

127127
@ParameterizedTest
128-
@ValueSource(strings = {"some document Id"})
128+
// @ValueSource(strings = {"some document Id"})
129129
@NullSource
130-
@EmptySource
130+
// @EmptySource
131131
void contentIdNotPresentAndExistingNullReturnsCreateEvent(String contentId) {
132-
var event = cut.getEvent(mock(InputStream.class), contentId, false, CdsData.create());
132+
var event = cut.getEvent(mock(InputStream.class), contentId, CdsData.create());
133133

134134
assertThat(event).isEqualTo(createEvent);
135135
}
@@ -139,7 +139,7 @@ void contentIdNotPresentAndExistingNullReturnsCreateEvent(String contentId) {
139139
@NullSource
140140
@EmptySource
141141
void contentIdNotPresentAndExistingNullReturnsDoNothingEvent(String contentId) {
142-
var event = cut.getEvent(null, contentId, false, CdsData.create());
142+
var event = cut.getEvent(null, contentId, CdsData.create());
143143

144144
assertThat(event).isEqualTo(doNothingEvent);
145145
}
@@ -149,7 +149,7 @@ void contentIdPresentButNullAndExistingNotNullReturnsUpdateEvent() {
149149
var data = CdsData.create();
150150
data.put(Attachments.CONTENT_ID, "someValue");
151151

152-
var event = cut.getEvent(mock(InputStream.class), null, true, data);
152+
var event = cut.getEvent(mock(InputStream.class), null, data);
153153

154154
assertThat(event).isEqualTo(updateEvent);
155155
}
@@ -159,7 +159,7 @@ void updateIfContentIdDifferentButContentProvided() {
159159
var data = CdsData.create();
160160
data.put(Attachments.CONTENT_ID, "existing");
161161

162-
var event = cut.getEvent(mock(InputStream.class), "someValue", true, data);
162+
var event = cut.getEvent(mock(InputStream.class), "someValue", data);
163163

164164
assertThat(event).isEqualTo(updateEvent);
165165
}

cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/handler/draftservice/DraftPatchAttachmentsHandlerTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44
import static org.mockito.ArgumentMatchers.any;
5-
import static org.mockito.ArgumentMatchers.anyBoolean;
65
import static org.mockito.ArgumentMatchers.eq;
76
import static org.mockito.Mockito.mock;
87
import static org.mockito.Mockito.verify;
@@ -63,7 +62,7 @@ void setup() {
6362
cut = new DraftPatchAttachmentsHandler(persistence, eventFactory);
6463
eventContext = mock(DraftPatchEventContext.class);
6564
event = mock(ModifyAttachmentEvent.class);
66-
when(eventFactory.getEvent(any(), any(), anyBoolean(), any())).thenReturn(event);
65+
when(eventFactory.getEvent(any(), any(), any())).thenReturn(event);
6766
selectCaptor = ArgumentCaptor.forClass(CqnSelect.class);
6867
}
6968

@@ -108,7 +107,7 @@ void selectedDataUsedForEventFactory() {
108107

109108
cut.processBeforeDraftPatch(eventContext, List.of(root));
110109

111-
verify(eventFactory).getEvent(content, attachment.getContentId(), false, attachment);
110+
verify(eventFactory).getEvent(content, attachment.getContentId(), attachment);
112111
}
113112

114113
@Test
@@ -124,7 +123,7 @@ void contentIdUsedForEventFactory() {
124123

125124
cut.processBeforeDraftPatch(eventContext, List.of(root));
126125

127-
verify(eventFactory).getEvent(content, attachment.getContentId(), true, attachment);
126+
verify(eventFactory).getEvent(content, attachment.getContentId(), attachment);
128127
verify(event).processEvent(any(), eq(content), eq(attachment), eq(eventContext));
129128
}
130129

0 commit comments

Comments
 (0)