use of org.hisp.dhis.webapi.controller.exception.OperationNotAllowedException in project dhis2-core by dhis2.
the class DeduplicationControllerTest method postPotentialDuplicateAlreadyExists.
@Test
void postPotentialDuplicateAlreadyExists() throws PotentialDuplicateConflictException {
PotentialDuplicate pd = new PotentialDuplicate(teiA, teiB);
when(trackerAccessManager.canRead(any(), eq(trackedEntityInstanceA))).thenReturn(Lists.newArrayList());
when(trackerAccessManager.canRead(any(), eq(trackedEntityInstanceB))).thenReturn(Lists.newArrayList());
when(deduplicationService.exists(pd)).thenReturn(true);
try {
deduplicationController.postPotentialDuplicate(pd);
} catch (OperationNotAllowedException | ConflictException | NotFoundException | BadRequestException | PotentialDuplicateConflictException e) {
assertTrue(e instanceof ConflictException);
}
verify(deduplicationService, times(0)).addPotentialDuplicate(any());
verify(trackerAccessManager).canRead(user, trackedEntityInstanceA);
verify(trackerAccessManager).canRead(user, trackedEntityInstanceB);
verify(deduplicationService).exists(pd);
}
use of org.hisp.dhis.webapi.controller.exception.OperationNotAllowedException in project dhis2-core by dhis2.
the class DeduplicationControllerTest method postPotentialDuplicateTeiNotFound.
@Test
void postPotentialDuplicateTeiNotFound() {
when(trackedEntityInstanceService.getTrackedEntityInstance(teiA)).thenReturn(null);
try {
deduplicationController.postPotentialDuplicate(new PotentialDuplicate(teiA, teiB));
} catch (OperationNotAllowedException | ConflictException | NotFoundException | BadRequestException | PotentialDuplicateConflictException e) {
assertTrue(e instanceof NotFoundException);
}
verify(deduplicationService, times(0)).addPotentialDuplicate(any());
}
use of org.hisp.dhis.webapi.controller.exception.OperationNotAllowedException in project dhis2-core by dhis2.
the class DeduplicationControllerTest method postPotentialDuplicateNoAccessToTeiA.
@Test
void postPotentialDuplicateNoAccessToTeiA() {
when(trackerAccessManager.canRead(Mockito.any(), eq(trackedEntityInstanceA))).thenReturn(Lists.newArrayList("Error"));
try {
deduplicationController.postPotentialDuplicate(new PotentialDuplicate(teiA, teiB));
} catch (OperationNotAllowedException | ConflictException | NotFoundException | BadRequestException | PotentialDuplicateConflictException e) {
assertTrue(e instanceof OperationNotAllowedException);
}
verify(deduplicationService, times(0)).addPotentialDuplicate(any());
verify(trackerAccessManager).canRead(user, trackedEntityInstanceA);
}
use of org.hisp.dhis.webapi.controller.exception.OperationNotAllowedException in project dhis2-core by dhis2.
the class DeduplicationControllerTest method postPotentialDuplicateNoAccessToTeiB.
@Test
void postPotentialDuplicateNoAccessToTeiB() {
when(trackerAccessManager.canRead(Mockito.any(), eq(trackedEntityInstanceA))).thenReturn(Lists.newArrayList());
when(trackerAccessManager.canRead(Mockito.any(), eq(trackedEntityInstanceB))).thenReturn(Lists.newArrayList("Error"));
try {
deduplicationController.postPotentialDuplicate(new PotentialDuplicate(teiA, teiB));
} catch (OperationNotAllowedException | ConflictException | NotFoundException | BadRequestException | PotentialDuplicateConflictException e) {
assertTrue(e instanceof OperationNotAllowedException);
}
verify(deduplicationService, times(0)).addPotentialDuplicate(any());
verify(trackerAccessManager).canRead(user, trackedEntityInstanceA);
verify(trackerAccessManager).canRead(user, trackedEntityInstanceB);
}
use of org.hisp.dhis.webapi.controller.exception.OperationNotAllowedException in project dhis2-core by dhis2.
the class MetadataSyncController method metadataSync.
@PreAuthorize("hasRole('ALL') or hasRole('F_METADATA_MANAGE')")
@GetMapping
public ResponseEntity<? extends WebMessageResponse> metadataSync(HttpServletRequest request, HttpServletResponse response) throws MetadataSyncException, BadRequestException, MetadataImportConflictException, OperationNotAllowedException {
MetadataSyncParams syncParams;
MetadataSyncSummary metadataSyncSummary = null;
synchronized (metadataSyncService) {
try {
syncParams = metadataSyncService.getParamsFromMap(contextService.getParameterValuesMap());
} catch (RemoteServerUnavailableException exception) {
throw new MetadataSyncException(exception.getMessage(), exception);
} catch (MetadataSyncServiceException serviceException) {
throw new BadRequestException("Error in parsing inputParams " + serviceException.getMessage(), serviceException);
}
try {
boolean isSyncRequired = metadataSyncService.isSyncRequired(syncParams);
if (isSyncRequired) {
metadataSyncSummary = metadataSyncService.doMetadataSync(syncParams);
validateSyncSummaryResponse(metadataSyncSummary);
} else {
throw new MetadataImportConflictException("Version already exists in system and hence not starting the sync.");
}
} catch (MetadataSyncImportException importerException) {
throw new MetadataSyncException("Runtime exception occurred while doing import: " + importerException.getMessage());
} catch (MetadataSyncServiceException serviceException) {
throw new MetadataSyncException("Exception occurred while doing metadata sync: " + serviceException.getMessage());
} catch (DhisVersionMismatchException versionMismatchException) {
throw new OperationNotAllowedException("Exception occurred while doing metadata sync: " + versionMismatchException.getMessage());
}
}
return new ResponseEntity<MetadataSyncSummary>(metadataSyncSummary, HttpStatus.OK);
}
Aggregations