@Before
  public void setUp() {
    districtFacade = new DefaultDistrictFacade();

    districtService = mock(DistrictService.class);
    districtFacade.setDistrictService(districtService);
    districtPopulator = mock(DistrictPopulator.class); // new DistrictPopulator();
    districtFacade.setDistrictPopulator(districtPopulator);
  }
  @Test
  public void testGetDistrictsByCityCode() {
    final List<DistrictModel> districtModels = dummyDataDistrictList();
    final DistrictModel districtModel = dummyDataDistrict();
    when(districtService.getDistrictsByCityCode("TEST-CITY-CODE")).thenReturn(districtModels);

    doAnswer(
            new Answer<DistrictData>() {
              @Override
              public DistrictData answer(final InvocationOnMock invocation) throws Throwable {
                final Object[] args = invocation.getArguments();
                if (args[1] instanceof DistrictData) {
                  final DistrictData dd = (DistrictData) args[1];
                  dd.setName("TEST-DISTRICT-NAME-EN"); // assuming now emulating the value for
                  // Locale.ENGLISH
                  dd.setCode("TEST-DISTRICT-CODE");
                }
                return null;
              }
            })
        .when(this.districtPopulator)
        .populate(
            org.mockito.Matchers.any(DistrictModel.class),
            org.mockito.Matchers.any(DistrictData.class));

    final List<DistrictData> dto = districtFacade.getDistrictsByCityCode("TEST-CITY-CODE");
    assertNotNull(dto);
    assertEquals(dto.size(), districtModels.size());
    assertEquals(dto.get(0).getName(), districtModel.getName(Locale.ENGLISH));
    assertEquals(dto.get(0).getCode(), districtModel.getCode());
  }