### Question:
AdditionalProperties extends AssetPropertyBase { public Iterator<String> getPropertyNames() { return additionalProperties.keySet().iterator(); } AdditionalProperties(Map<String, String>  additionalProperties);  AdditionalProperties(AssetDescriptor     parentAsset,
                                Map<String, String> additionalProperties);  AdditionalProperties(AssetDescriptor   parentAsset, AdditionalProperties templateProperties); Iterator<String> getPropertyNames(); String getProperty(String name); @Override boolean equals(Object objectToCompare); @Override String toString();  }### Answer:
@Test public void testNullProperties() { AssetDescriptor parentAsset = null; AdditionalProperties template = null; Map<String, String> propertyMap = new HashMap<>(); AdditionalProperties additionalProperties = new AdditionalProperties(parentAsset, template); Iterator<String> iterator = additionalProperties.getPropertyNames(); try { iterator.next(); assertTrue(false); } catch (Throwable exc) { assertTrue(true); } additionalProperties = new AdditionalProperties(parentAsset, propertyMap); iterator = additionalProperties.getPropertyNames(); try { iterator.next(); assertTrue(false); } catch (Throwable exc) { assertTrue(true); } additionalProperties = new AdditionalProperties(propertyMap); iterator = additionalProperties.getPropertyNames(); try { iterator.next(); assertTrue(false); } catch (Throwable exc) { assertTrue(true); } }