private GlusterVolumeAdvancedDetails getVolumeAdvancedDetails(GlusterVolumeEntity volume) {
    GlusterVolumeAdvancedDetails volDetails = new GlusterVolumeAdvancedDetails();
    GlusterVolumeSizeInfo capacityInfo = new GlusterVolumeSizeInfo();
    capacityInfo.setVolumeId(volume.getId());
    capacityInfo.setTotalSize(600000L);
    capacityInfo.setFreeSize(200000L);
    capacityInfo.setUsedSize(400000L);
    volDetails.setCapacityInfo(capacityInfo);

    List<BrickDetails> brickDetailsList = new ArrayList<>();
    for (GlusterBrickEntity brick : volume.getBricks()) {
      BrickDetails brickDetails = new BrickDetails();
      BrickProperties properties = new BrickProperties();
      properties.setBrickId(brick.getId());
      brickDetails.setBrickProperties(properties);
      properties.setStatus(brick.getStatus());
      if (volume == existingReplVol) {
        if (brick.getServerId().equals(SERVER_ID_1)
            && (brick.getBrickDirectory().equals(REPL_BRICK_R1D1)
                || brick.getBrickDirectory().equals(REPL_BRICK_R2D1))) {
          properties.setStatus(GlusterStatus.DOWN);
          bricksWithChangedStatus.add(brick);
        }
      }
      brickDetailsList.add(brickDetails);
    }
    volDetails.setBrickDetails(brickDetailsList);

    return volDetails;
  }
 @Test
 public void testWithNoLists() {
   GlusterVolumeAdvancedDetails volDetailsEntity = new GlusterVolumeAdvancedDetails();
   volDetailsEntity.setBrickDetails(getBrickDetails(0, 0, 0));
   GlusterBrickAdvancedDetails model = GlusterBrickDetailMapper.map(volDetailsEntity, null);
   assertNotNull(model);
   assertNull(model.getGlusterClients());
   assertNull(model.getMntOptions());
 }
  @Test
  public void testWithMultipleClientLists() {
    GlusterVolumeAdvancedDetails volDetailsEntity = new GlusterVolumeAdvancedDetails();
    volDetailsEntity.setBrickDetails(getBrickDetails(2, 2, 2));

    GlusterBrickAdvancedDetails model = GlusterBrickDetailMapper.map(volDetailsEntity, null);
    assertEquals(model.getGlusterClients().getGlusterClients().size(), 2);
    assertEquals(
        model.getMntOptions(),
        volDetailsEntity.getBrickDetails().get(0).getBrickProperties().getMntOptions());
    assertEquals(
        model.getMemoryPools().getGlusterMemoryPools().size(),
        volDetailsEntity.getBrickDetails().get(0).getMemoryStatus().getMemPools().size());
  }
  @Test
  public void testWithNullChildObjects() {
    GlusterVolumeAdvancedDetails volDetailsEntity = new GlusterVolumeAdvancedDetails();
    volDetailsEntity.setBrickDetails(getBrickDetails(1, 0, 0));
    volDetailsEntity.getBrickDetails().get(0).setClients(null);
    volDetailsEntity.getBrickDetails().get(0).setMemoryStatus(null);

    GlusterBrickAdvancedDetails model = GlusterBrickDetailMapper.map(volDetailsEntity, null);
    assertNotNull(model);
    assertNull(model.getGlusterClients());
    assertEquals(
        model.getMntOptions(),
        volDetailsEntity.getBrickDetails().get(0).getBrickProperties().getMntOptions());
    assertNull(model.getMemoryPools());
  }
 @Override
 public void render(Context context, GlusterVolumeEntity object, SafeHtmlBuilder sb, String id) {
   GlusterVolumeAdvancedDetails advancedDetails = object.getAdvancedDetails();
   GlusterVolumeSizeInfo sizeInfo = null;
   if (advancedDetails != null) {
     sizeInfo = advancedDetails.getCapacityInfo();
     if (sizeInfo != null) {
       setFreeSize(sizeInfo.getFreeSize().doubleValue());
       setTotalSize(sizeInfo.getTotalSize().doubleValue());
       setUsedSize(sizeInfo.getUsedSize().doubleValue());
       setInUnit(SizeUnit.BYTES);
     }
   }
   super.render(
       context, advancedDetails == null ? null : sizeInfo == null ? null : sizeInfo, sb, id);
 }