private int getGeneratedJSONObjectsCount(int amountOfConfigs) throws IOException { List<Config> simpleConfigs = new ArrayList<>(); for (int i = 0; i < amountOfConfigs; i++) { Config simpleConfig = new Config(); simpleConfig.setName("simpleConfiguration" + Integer.toString(i)); simpleConfigs.add(simpleConfig); } Configs configs = new Configs(simpleConfigs, "simpleConfiguration"); when(configService.getConfigs()).thenReturn(configs); openMRSTaskDataProviderBuilder.setOpenMRSConfigService(configService); VelocityEngineFactoryBean vefb = new VelocityEngineFactoryBean(); Map<String, Object> velocityPropertiesMap = new HashMap<String, Object>(); velocityPropertiesMap.put("resource.loader", "class"); velocityPropertiesMap.put( "class.resource.loader.class", "org.motechproject.openmrs.tasks.VelocityResourceLoader"); vefb.setVelocityPropertiesMap(velocityPropertiesMap); VelocityEngine velocityEngine = vefb.createVelocityEngine(); assertNotNull(velocityEngine); openMRSTaskDataProviderBuilder.setVelocityEngine(velocityEngine); String generatedJSON = openMRSTaskDataProviderBuilder.generateDataProvider(); JSONObject jsonResult = new JSONObject(generatedJSON); JSONArray objects = jsonResult.getJSONArray("objects"); return objects.length(); }
@Test public void shouldGetAllConcepts() throws Exception { URI url = config.toInstancePath("/concept?v=full"); when(restOperations.exchange( eq(url), eq(HttpMethod.GET), any(HttpEntity.class), eq(String.class))) .thenReturn(getResponse(CONCEPT_LIST_RESPONSE_JSON)); ConceptListResult result = conceptResource.getAllConcepts(config); verify(restOperations) .exchange(eq(url), eq(HttpMethod.GET), requestCaptor.capture(), eq(String.class)); assertThat(result, equalTo(readFromFile(CONCEPT_LIST_RESPONSE_JSON, ConceptListResult.class))); assertThat(requestCaptor.getValue().getHeaders(), equalTo(getHeadersForGet(config))); assertThat(requestCaptor.getValue().getBody(), nullValue()); }
@Test public void shouldGetConceptById() throws Exception { String conceptId = "LLL"; URI url = config.toInstancePathWithParams("/concept/{uuid}", conceptId); when(restOperations.exchange( eq(url), eq(HttpMethod.GET), any(HttpEntity.class), eq(String.class))) .thenReturn(getResponse(CONCEPT_CREATE_JSON)); Concept concept = conceptResource.getConceptById(config, conceptId); verify(restOperations) .exchange(eq(url), eq(HttpMethod.GET), requestCaptor.capture(), eq(String.class)); assertThat(concept, equalTo(readFromFile(CONCEPT_CREATE_JSON, Concept.class))); assertThat(requestCaptor.getValue().getHeaders(), equalTo(getHeadersForGet(config))); assertThat(requestCaptor.getValue().getBody(), nullValue()); }
@Test public void shouldUpdateConcept() throws Exception { Concept concept = prepareConcept(); URI url = config.toInstancePathWithParams("/concept/{uuid}", concept.getUuid()); when(restOperations.exchange( eq(url), eq(HttpMethod.POST), any(HttpEntity.class), eq(String.class))) .thenReturn(getResponse(CONCEPT_RESPONSE_JSON)); Concept updated = conceptResource.updateConcept(config, concept); verify(restOperations) .exchange(eq(url), eq(HttpMethod.POST), requestCaptor.capture(), eq(String.class)); assertThat(updated, equalTo(concept)); assertThat(requestCaptor.getValue().getHeaders(), equalTo(getHeadersForPost(config))); assertThat( JsonUtils.readJson(requestCaptor.getValue().getBody(), JsonObject.class), equalTo(readFromFile(CONCEPT_CREATE_JSON, JsonObject.class))); }