use of org.hisp.dhis.dxf2.metadata.tasks.MetadataRetryContext in project dhis2-core by dhis2.
the class MetadataSyncPreProcessorTest method testHandleMetadataVersionsListShouldReturnDifferenceOfVersionsFromBaselineVersion.
@Test
public void testHandleMetadataVersionsListShouldReturnDifferenceOfVersionsFromBaselineVersion() throws Exception {
MetadataRetryContext mockRetryContext = mock(MetadataRetryContext.class);
MetadataVersion currentVersion = new MetadataVersion();
currentVersion.setType(VersionType.BEST_EFFORT);
currentVersion.setName("test_version1");
currentVersion.setCreated(new Date());
currentVersion.setHashCode("samplehashcode1");
MetadataVersion newVersion = new MetadataVersion();
newVersion.setType(VersionType.ATOMIC);
newVersion.setName("test_version2");
newVersion.setCreated(new Date());
newVersion.setHashCode("samplehashcode2");
List<MetadataVersion> listOfVersions = new ArrayList<>();
listOfVersions.add(newVersion);
when(metadataVersionDelegate.getMetaDataDifference(currentVersion)).thenReturn(listOfVersions);
List<MetadataVersion> expectedListOfVersions = metadataSyncPreProcessor.handleMetadataVersionsList(mockRetryContext, currentVersion);
assertEquals(listOfVersions.size(), expectedListOfVersions.size());
assertEquals(expectedListOfVersions, listOfVersions);
}
use of org.hisp.dhis.dxf2.metadata.tasks.MetadataRetryContext in project dhis2-core by dhis2.
the class MetadataSyncPreProcessorTest method testHandleDataPushShouldCallDataPush.
// TODO: Do not assert for methods to be executed. Assert for the result not on how it happens.
@Test
public void testHandleDataPushShouldCallDataPush() throws Exception {
MetadataRetryContext mockRetryContext = mock(MetadataRetryContext.class);
AvailabilityStatus availabilityStatus = new AvailabilityStatus(true, "test_message", null);
when(synchronizationManager.isRemoteServerAvailable()).thenReturn(availabilityStatus);
metadataSyncPreProcessor.handleAggregateDataPush(mockRetryContext);
verify(synchronizationManager, times(1)).executeDataPush();
}
use of org.hisp.dhis.dxf2.metadata.tasks.MetadataRetryContext in project dhis2-core by dhis2.
the class MetadataSyncPreProcessorTest method testHandleMetadataVersionsListShouldThrowExceptionIfAnyIssueWithMetadataDifference.
@Test(expected = MetadataSyncServiceException.class)
public void testHandleMetadataVersionsListShouldThrowExceptionIfAnyIssueWithMetadataDifference() throws Exception {
AvailabilityStatus availabilityStatus = new AvailabilityStatus(true, "test_message", null);
when(synchronizationManager.isRemoteServerAvailable()).thenReturn(availabilityStatus);
MetadataRetryContext mockRetryContext = mock(MetadataRetryContext.class);
MetadataVersion currentVersion = new MetadataVersion();
currentVersion.setType(VersionType.BEST_EFFORT);
currentVersion.setName("test_version");
currentVersion.setCreated(new Date());
currentVersion.setHashCode("samplehashcode");
List<MetadataVersion> listOfVersions = new ArrayList<>();
listOfVersions.add(currentVersion);
when(metadataVersionDelegate.getMetaDataDifference(currentVersion)).thenThrow(new MetadataSyncServiceException("test_message"));
metadataSyncPreProcessor.handleMetadataVersionsList(mockRetryContext, currentVersion);
}
use of org.hisp.dhis.dxf2.metadata.tasks.MetadataRetryContext in project dhis2-core by dhis2.
the class MetadataSyncPreProcessorTest method testhandleAggregateDataPushShouldThrowExceptionWhenDataPushIsUnsuccessful.
@Test(expected = MetadataSyncServiceException.class)
public void testhandleAggregateDataPushShouldThrowExceptionWhenDataPushIsUnsuccessful() throws Exception {
MetadataRetryContext mockRetryContext = mock(MetadataRetryContext.class);
ImportSummary expectedSummary = new ImportSummary();
expectedSummary.setStatus(ImportStatus.ERROR);
AvailabilityStatus availabilityStatus = new AvailabilityStatus(true, "test_message", null);
when(synchronizationManager.isRemoteServerAvailable()).thenReturn(availabilityStatus);
when(metadataSyncPreProcessor.handleAggregateDataPush(mockRetryContext)).thenReturn(expectedSummary);
ImportSummary actualSummary = metadataSyncPreProcessor.handleAggregateDataPush(mockRetryContext);
assertEquals(expectedSummary.getStatus(), actualSummary.getStatus());
}
use of org.hisp.dhis.dxf2.metadata.tasks.MetadataRetryContext in project dhis2-core by dhis2.
the class MetadataSyncTaskTest method testShouldAbortIfDHISVersionMismatch.
@Test(expected = DhisVersionMismatchException.class)
public void testShouldAbortIfDHISVersionMismatch() throws Exception {
metadataVersions.add(metadataVersion);
when(metadataSyncPreProcessor.handleCurrentMetadataVersion(metadataRetryContext)).thenReturn(metadataVersion);
when(metadataSyncPreProcessor.handleMetadataVersionsList(metadataRetryContext, metadataVersion)).thenReturn(metadataVersions);
when(metadataSyncService.doMetadataSync(any(MetadataSyncParams.class))).thenThrow(new DhisVersionMismatchException(""));
when(metadataSyncService.isSyncRequired(any(MetadataSyncParams.class))).thenReturn(true);
metadataSyncTask.runSyncTask(metadataRetryContext);
verify(metadataSyncPreProcessor, times(1)).setUp(metadataRetryContext);
verify(metadataSyncPreProcessor, times(1)).handleAggregateDataPush(metadataRetryContext);
verify(metadataSyncPreProcessor, times(1)).handleEventDataPush(metadataRetryContext);
verify(metadataSyncPreProcessor, times(1)).handleCurrentMetadataVersion(metadataRetryContext);
verify(metadataSyncPreProcessor, times(1)).handleMetadataVersionsList(metadataRetryContext, metadataVersion);
verify(metadataSyncService, times(1)).doMetadataSync(any(MetadataSyncParams.class));
}
Aggregations