void add(StorageType[] storageTypes, BlockStoragePolicy policy) {
    StorageTypeAllocation storageCombo = 
        new StorageTypeAllocation(storageTypes, policy);
    Long count = storageComboCounts.get(storageCombo);
    if (count == null) {
      storageComboCounts.put(storageCombo, 1l);
      storageCombo.setActualStoragePolicy(
          getStoragePolicy(storageCombo.getStorageTypes()));
    } else {
      storageComboCounts.put(storageCombo, count.longValue()+1);
    }
    totalBlocks++;
  }
@Test
  public void testMultipleWarmsInDifferentOrder() {
    BlockStoragePolicySuite bsps = BlockStoragePolicySuite.createDefaultSuite();
    StoragePolicySummary sts = new StoragePolicySummary(bsps.getAllPolicies());
    BlockStoragePolicy warm = bsps.getPolicy("WARM");
    //DISK:1,ARCHIVE:1
    sts.add(new StorageType[]{StorageType.DISK,StorageType.ARCHIVE},warm);
    sts.add(new StorageType[]{StorageType.ARCHIVE,StorageType.DISK},warm);
    //DISK:2,ARCHIVE:1
    sts.add(new StorageType[]{StorageType.ARCHIVE,
        StorageType.DISK,StorageType.DISK},warm);
    sts.add(new StorageType[]{StorageType.DISK,
        StorageType.ARCHIVE,StorageType.DISK},warm);
    sts.add(new StorageType[]{StorageType.DISK,
        StorageType.DISK,StorageType.ARCHIVE},warm);
    //DISK:1,ARCHIVE:2
    sts.add(new StorageType[]{StorageType.DISK,
        StorageType.ARCHIVE,StorageType.ARCHIVE},warm);
    sts.add(new StorageType[]{StorageType.ARCHIVE,
        StorageType.DISK,StorageType.ARCHIVE},warm);
    sts.add(new StorageType[]{StorageType.ARCHIVE,
        StorageType.ARCHIVE,StorageType.DISK},warm);
    //DISK:2,ARCHIVE:2
    sts.add(new StorageType[]{StorageType.ARCHIVE,
        StorageType.ARCHIVE,StorageType.DISK,StorageType.DISK},warm);
    Map<String, Long> actualOutput = convertToStringMap(sts);
    Assert.assertEquals(4,actualOutput.size());
    Map<String, Long>  expectedOutput = new HashMap<>();
    expectedOutput.put("WARM|DISK:1,ARCHIVE:1(WARM)", 2l);
    expectedOutput.put("WARM|DISK:2,ARCHIVE:1", 3l);
    expectedOutput.put("WARM|DISK:1,ARCHIVE:2(WARM)", 3l);
    expectedOutput.put("WARM|DISK:2,ARCHIVE:2", 1l);
    Assert.assertEquals(expectedOutput,actualOutput);
  }