### Question:
KerberosIdentityDescriptor extends AbstractKerberosDescriptor { public void update(KerberosIdentityDescriptor updates) { if (updates != null) { setName(updates.getName()); setReference(updates.getReference()); KerberosPrincipalDescriptor existingPrincipal = getPrincipalDescriptor(); if (existingPrincipal == null) { setPrincipalDescriptor(updates.getPrincipalDescriptor()); } else { existingPrincipal.update(updates.getPrincipalDescriptor()); } KerberosKeytabDescriptor existingKeytabDescriptor = getKeytabDescriptor(); if (existingKeytabDescriptor == null) { setKeytabDescriptor(updates.getKeytabDescriptor()); } else { existingKeytabDescriptor.update(updates.getKeytabDescriptor()); } Predicate updatedWhen = updates.getWhen(); if (updatedWhen != null) { setWhen(updatedWhen); } } } KerberosIdentityDescriptor(String name, String reference, KerberosPrincipalDescriptor principal, KerberosKeytabDescriptor keytab, Predicate when);  KerberosIdentityDescriptor(Map<?, ?> data); String getReference(); String getReferenceAbsolutePath(); void setReference(String reference); KerberosPrincipalDescriptor getPrincipalDescriptor(); void setPrincipalDescriptor(KerberosPrincipalDescriptor principal); KerberosKeytabDescriptor getKeytabDescriptor(); void setKeytabDescriptor(KerberosKeytabDescriptor keytab); Predicate getWhen(); void setWhen(Predicate when); boolean shouldInclude(Map<String, Object> context); void update(KerberosIdentityDescriptor updates); @Override Map<String, Object> toMap(); Optional<String> getReferencedServiceName(); boolean isShared(KerberosIdentityDescriptor that); boolean isReference(); @Override String getPath(); @Override int hashCode(); @Override boolean equals(Object object); List<KerberosIdentityDescriptor> findReferences();  }### Answer:
@Test public void testUpdate() { KerberosIdentityDescriptor identityDescriptor = createFromJSON(); KerberosIdentityDescriptor updatedIdentityDescriptor = createFromMap(); Assert.assertNotNull(identityDescriptor); Assert.assertNotNull(updatedIdentityDescriptor); identityDescriptor.update(updatedIdentityDescriptor); validateUpdatedData(identityDescriptor); }