use of org.hisp.dhis.dxf2.metadata.Metadata in project dhis2-core by dhis2.
the class MetadataVersionDelegateTest method testShouldGetRemoteVersionNullWhenDhisResponseReturnsNull.
@Test
public void testShouldGetRemoteVersionNullWhenDhisResponseReturnsNull() throws Exception {
String url = "http://localhost:9080/api/metadata/version?versionName=Version_Name";
when(metadataSystemSettingService.getVersionDetailsUrl("testversion")).thenReturn(url);
AvailabilityStatus availabilityStatus = new AvailabilityStatus(true, "test_message", null);
when(synchronizationManager.isRemoteServerAvailable()).thenReturn(availabilityStatus);
PowerMockito.when(HttpUtils.httpGET(versionUrl, true, username, password, null, VERSION_TIMEOUT, true)).thenReturn(null);
MetadataVersion version = metadataVersionDelegate.getRemoteMetadataVersion("testVersion");
assertEquals(null, version);
}
use of org.hisp.dhis.dxf2.metadata.Metadata in project dhis2-core by dhis2.
the class MetadataVersionDelegateTest method testShouldGetMetaDataDifferenceWithStatusOk.
@Test
public void testShouldGetMetaDataDifferenceWithStatusOk() throws Exception {
String response = "{\"name\":\"testVersion\",\"created\":\"2016-05-26T11:43:59.787+0000\",\"type\":\"BEST_EFFORT\",\"id\":\"ktwh8PHNwtB\",\"hashCode\":\"12wa32d4f2et3tyt5yu6i\"}";
MetadataVersion metadataVersion = new MetadataVersion("testVersion", VersionType.BEST_EFFORT);
metadataVersion.setHashCode("12wa32d4f2et3tyt5yu6i");
String url = "http://localhost:9080/api/metadata/version/history?baseline=testVersion";
when(metadataSystemSettingService.getMetaDataDifferenceURL("testVersion")).thenReturn(url);
AvailabilityStatus availabilityStatus = new AvailabilityStatus(true, "test_message", null);
when(synchronizationManager.isRemoteServerAvailable()).thenReturn(availabilityStatus);
HttpResponse httpResponse = mock(HttpResponse.class);
DhisHttpResponse dhisHttpResponse = new DhisHttpResponse(httpResponse, response, HttpStatus.OK.value());
PowerMockito.mockStatic(HttpUtils.class);
PowerMockito.when(HttpUtils.httpGET(url, true, username, password, null, VERSION_TIMEOUT, true)).thenReturn(dhisHttpResponse);
List<MetadataVersion> metadataVersionList = new ArrayList<>();
metadataVersionList.add(metadataVersion);
when(metadataSystemSettingService.getMetaDataDifferenceURL("testVersion")).thenReturn(baselineUrl);
when(synchronizationManager.isRemoteServerAvailable()).thenReturn(availabilityStatus);
PowerMockito.when(HttpUtils.httpGET(baselineUrl, true, username, password, null, VERSION_TIMEOUT, true)).thenReturn(dhisHttpResponse);
when(renderService.fromMetadataVersion(any(InputStream.class), eq(RenderFormat.JSON))).thenReturn(metadataVersionList);
List<MetadataVersion> metaDataDifference = metadataVersionDelegate.getMetaDataDifference(metadataVersion);
assertTrue(metaDataDifference.size() == metadataVersionList.size());
assertEquals(metadataVersionList.get(0).getType(), metaDataDifference.get(0).getType());
assertEquals(metadataVersionList.get(0).getName(), metaDataDifference.get(0).getName());
assertEquals(metadataVersionList.get(0).getHashCode(), metaDataDifference.get(0).getHashCode());
}
use of org.hisp.dhis.dxf2.metadata.Metadata in project dhis2-core by dhis2.
the class ObjectBundleServiceTest method testCreatePreheatValidationsInvalidObjects.
@Test
public void testCreatePreheatValidationsInvalidObjects() throws IOException {
Map<Class<? extends IdentifiableObject>, List<IdentifiableObject>> metadata = renderService.fromMetadata(new ClassPathResource("dxf2/de_validate2.json").getInputStream(), RenderFormat.JSON);
ObjectBundleParams params = new ObjectBundleParams();
params.setObjectBundleMode(ObjectBundleMode.VALIDATE);
params.setImportStrategy(ImportStrategy.CREATE);
params.setObjects(metadata);
ObjectBundle bundle = objectBundleService.create(params);
ObjectBundleValidationReport validate = objectBundleValidationService.validate(bundle);
assertFalse(validate.getTypeReportMap().isEmpty());
assertEquals(5, validate.getErrorReportsByCode(DataElement.class, ErrorCode.E5002).size());
assertEquals(3, validate.getErrorReportsByCode(DataElement.class, ErrorCode.E4000).size());
}
use of org.hisp.dhis.dxf2.metadata.Metadata in project dhis2-core by dhis2.
the class ObjectBundleServiceTest method testUpdateDataSetWithSectionsAndGreyedFields.
@Test
public void testUpdateDataSetWithSectionsAndGreyedFields() throws IOException {
Map<Class<? extends IdentifiableObject>, List<IdentifiableObject>> metadata = renderService.fromMetadata(new ClassPathResource("dxf2/dataset_with_sections_gf.json").getInputStream(), RenderFormat.JSON);
ObjectBundleParams params = new ObjectBundleParams();
params.setObjectBundleMode(ObjectBundleMode.COMMIT);
params.setImportStrategy(ImportStrategy.CREATE);
params.setObjects(metadata);
ObjectBundle bundle = objectBundleService.create(params);
ObjectBundleValidationReport validate = objectBundleValidationService.validate(bundle);
assertTrue(validate.getErrorReports().isEmpty());
objectBundleService.commit(bundle);
Section section1 = manager.get(Section.class, "JwcV2ZifEQf");
assertNotNull(section1.getDataSet());
assertEquals(1, section1.getCategoryCombos().size());
assertTrue(section1.getGreyedFields().isEmpty());
assertEquals(1, section1.getDataElements().size());
assertNotNull(section1.getDataSet());
Section section2 = manager.get(Section.class, "C50M0WxaI7y");
assertNotNull(section2.getDataSet());
assertEquals(1, section2.getCategoryCombos().size());
assertEquals(1, section2.getGreyedFields().size());
assertEquals(1, section2.getDataElements().size());
assertNotNull(section2.getDataSet());
metadata = renderService.fromMetadata(new ClassPathResource("dxf2/dataset_with_sections_gf_update.json").getInputStream(), RenderFormat.JSON);
params = new ObjectBundleParams();
params.setObjectBundleMode(ObjectBundleMode.COMMIT);
params.setImportStrategy(ImportStrategy.UPDATE);
params.setObjects(metadata);
bundle = objectBundleService.create(params);
validate = objectBundleValidationService.validate(bundle);
assertTrue(validate.getErrorReports().isEmpty());
objectBundleService.commit(bundle);
List<DataSet> dataSets = manager.getAll(DataSet.class);
List<Section> sections = manager.getAll(Section.class);
List<OrganisationUnit> organisationUnits = manager.getAll(OrganisationUnit.class);
List<DataElement> dataElements = manager.getAll(DataElement.class);
List<UserAuthorityGroup> userRoles = manager.getAll(UserAuthorityGroup.class);
List<User> users = manager.getAll(User.class);
List<DataElementOperand> dataElementOperands = manager.getAll(DataElementOperand.class);
assertFalse(organisationUnits.isEmpty());
assertFalse(dataElements.isEmpty());
assertFalse(users.isEmpty());
assertFalse(userRoles.isEmpty());
assertEquals(1, dataSets.size());
assertEquals(2, sections.size());
assertEquals(1, dataElementOperands.size());
DataSet dataSet = dataSets.get(0);
assertEquals("Updated Data Set", dataSet.getName());
assertEquals(2, dataSet.getSections().size());
assertNotNull(dataSet.getUser());
section1 = manager.get(Section.class, "JwcV2ZifEQf");
assertNotNull(section1.getDataSet());
assertEquals(1, section1.getCategoryCombos().size());
assertEquals(1, section1.getGreyedFields().size());
assertEquals(1, section1.getDataElements().size());
assertNotNull(section1.getDataSet());
section2 = manager.get(Section.class, "C50M0WxaI7y");
assertNotNull(section2.getDataSet());
assertEquals(1, section2.getCategoryCombos().size());
assertTrue(section2.getGreyedFields().isEmpty());
assertEquals(1, section2.getDataElements().size());
assertNotNull(section2.getDataSet());
}
use of org.hisp.dhis.dxf2.metadata.Metadata in project dhis2-core by dhis2.
the class MetadataVersionDelegateTest method testShouldThrowExceptionWhenGettingRemoteMetadataVersionWithClientError.
@Test
public void testShouldThrowExceptionWhenGettingRemoteMetadataVersionWithClientError() throws Exception {
String response = "{\"name\":\"testVersion\",\"created\":\"2016-05-26T11:43:59.787+0000\",\"type\":\"BEST_EFFORT\",\"id\":\"ktwh8PHNwtB\",\"hashCode\":\"12wa32d4f2et3tyt5yu6i\"}";
MetadataVersion metadataVersion = new MetadataVersion("testVersion", VersionType.BEST_EFFORT);
metadataVersion.setHashCode("12wa32d4f2et3tyt5yu6i");
String url = "http://localhost:9080/api/metadata/version?versionName=Version_Name";
when(metadataSystemSettingService.getVersionDetailsUrl("testversion")).thenReturn(url);
AvailabilityStatus availabilityStatus = new AvailabilityStatus(true, "test_message", null);
when(synchronizationManager.isRemoteServerAvailable()).thenReturn(availabilityStatus);
HttpResponse httpResponse = mock(HttpResponse.class);
DhisHttpResponse dhisHttpResponse = new DhisHttpResponse(httpResponse, response, HttpStatus.CONFLICT.value());
when(metadataSystemSettingService.getVersionDetailsUrl("testVersion")).thenReturn(versionUrl);
when(synchronizationManager.isRemoteServerAvailable()).thenReturn(availabilityStatus);
PowerMockito.when(HttpUtils.httpGET(versionUrl, true, username, password, null, VERSION_TIMEOUT, true)).thenReturn(dhisHttpResponse);
when(renderService.fromJson(response, MetadataVersion.class)).thenReturn(metadataVersion);
expectedException.expect(MetadataVersionServiceException.class);
expectedException.expectMessage("Client Error. Http call failed with status code: " + HttpStatus.CONFLICT.value() + " Caused by: " + response);
metadataVersionDelegate.getRemoteMetadataVersion("testVersion");
}
Aggregations