Skip to content

Commit c4c8247

Browse files
[SELC-7729] fix: set isTest only if it is true in findAndActivate in DelegationConnectorImpl (#118)
1 parent ae7935e commit c4c8247

File tree

2 files changed

+36
-3
lines changed

2 files changed

+36
-3
lines changed

apps/institution-ms/connector/dao/src/main/java/it/pagopa/selfcare/mscore/connector/dao/DelegationConnectorImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,9 @@ public Delegation findAndActivate(String from, String to, String productId, Bool
167167
update.set(DelegationEntity.Fields.updatedAt.name(), OffsetDateTime.now());
168168
update.set(DelegationEntity.Fields.closedAt.name(), null);
169169
update.set(DelegationEntity.Fields.status.name(), DelegationState.ACTIVE);
170-
update.set(DelegationEntity.Fields.isTest.name(), isTest);
170+
if(Boolean.TRUE.equals(isTest)){
171+
update.set(DelegationEntity.Fields.isTest.name(), true);
172+
}
171173
FindAndModifyOptions findAndModifyOptions = FindAndModifyOptions.options().upsert(false).returnNew(true);
172174
return delegationMapper.convertToDelegation(repository.findAndModify(query, update, findAndModifyOptions, DelegationEntity.class));
173175
}

apps/institution-ms/connector/dao/src/test/java/it/pagopa/selfcare/mscore/connector/dao/DelegationConnectorImplTest.java

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,21 +253,52 @@ void find_shouldGetDataPaginated() {
253253
}
254254

255255
@Test
256-
void findAndActivate() {
256+
void findAndActivate_shouldSetIsTest() {
257257
DelegationEntity delegationEntity = new DelegationEntity();
258258
delegationEntity.setId("id");
259259
delegationEntity.setFrom("from");
260260
delegationEntity.setTo("to");
261261
delegationEntity.setProductId("prod-io");
262262
delegationEntity.setStatus(DelegationState.ACTIVE);
263263
delegationEntity.setIsTest(true);
264-
when(delegationRepository.findAndModify(any(), any(), any(), any())).thenReturn(delegationEntity);
264+
ArgumentCaptor<Update> updateCaptor = ArgumentCaptor.forClass(Update.class);
265+
when(delegationRepository.findAndModify(any(), updateCaptor.capture(), any(), any())).thenReturn(delegationEntity);
265266
Delegation delegation = delegationConnectorImpl.findAndActivate(delegationEntity.getFrom(), delegationEntity.getTo(), delegationEntity.getProductId(), delegationEntity.getIsTest());
267+
Update update = updateCaptor.getValue();
268+
Document updateDoc = update.getUpdateObject();
269+
270+
assertTrue(updateDoc.containsKey("$set"));
271+
Document setDoc = (Document) updateDoc.get("$set");
272+
assertTrue(setDoc.containsKey(DelegationEntity.Fields.isTest.name()));
273+
assertNotNull(setDoc.get(DelegationEntity.Fields.isTest.name()));
274+
assertEquals(delegationEntity.getIsTest(), setDoc.get(DelegationEntity.Fields.isTest.name()));
266275
assertNotNull(delegation);
267276
assertEquals(delegation.getId(), delegationEntity.getId());
268277
assertEquals(delegation.getIsTest(), delegationEntity.getIsTest());
269278
}
270279

280+
@Test
281+
void findAndActivate_shouldNotSetIsTest() {
282+
DelegationEntity delegationEntity = new DelegationEntity();
283+
delegationEntity.setId("id");
284+
delegationEntity.setFrom("from");
285+
delegationEntity.setTo("to");
286+
delegationEntity.setProductId("prod-io");
287+
delegationEntity.setStatus(DelegationState.ACTIVE);
288+
ArgumentCaptor<Update> updateCaptor = ArgumentCaptor.forClass(Update.class);
289+
when(delegationRepository.findAndModify(any(), updateCaptor.capture(), any(), any())).thenReturn(delegationEntity);
290+
Delegation delegation = delegationConnectorImpl.findAndActivate(delegationEntity.getFrom(), delegationEntity.getTo(), delegationEntity.getProductId(), delegationEntity.getIsTest());
291+
Update update = updateCaptor.getValue();
292+
Document updateDoc = update.getUpdateObject();
293+
294+
assertTrue(updateDoc.containsKey("$set"));
295+
Document setDoc = (Document) updateDoc.get("$set");
296+
assertFalse(setDoc.containsKey(DelegationEntity.Fields.isTest.name()));
297+
assertNull(setDoc.get(DelegationEntity.Fields.isTest.name()));
298+
assertNotNull(delegation);
299+
assertEquals(delegation.getId(), delegationEntity.getId());
300+
}
301+
271302
@Test
272303
void findAndCount_shouldGetData() {
273304

0 commit comments

Comments
 (0)