### Question:
UpgradeServerDefaultsStep extends AbstractUpgradeStep { protected Map<String, String> calculateModifiedServerDefaults(Map<String, String> newDefaults, Map<String, String> existingDefaults, Set<String> attrToModify) { Map<String, String> modifiedValues = new HashMap<String, String>(); for (String attrName : attrToModify) { String newAttr = newDefaults.get(attrName); String existingAttr = existingDefaults.get(attrName); if (newAttr != null && existingAttr != null && !newAttr.equals(existingAttr)) { modifiedValues.put(attrName, newAttr); } } return modifiedValues; } @Inject  UpgradeServerDefaultsStep(final PrivilegedAction<SSOToken> adminTokenAction,
            @DataLayer(ConnectionType.DATA_LAYER) final ConnectionFactory connectionFactory); @Override boolean isApplicable(); @Override void initialize(); @Override void perform(); @Override String getShortReport(String delimiter); @Override String getDetailedReport(String delimiter);  }### Answer:
@Test public void testModifiedDefaults() throws Exception { Map<String, String> modifiedDefaults = upgradeStep.calculateModifiedServerDefaults(getNewDefaults(), getExistingDefaults(), asSet("a")); assertThat(modifiedDefaults).isNotNull().hasSize(1); assertThat(modifiedDefaults.get("a")).isNotNull().isEqualTo("b"); }