### Question:
AttributeProperties { public static AttributeProperties fromWorkerProperties(Properties properties) throws IllegalArgumentException { final Map<String, List<Attribute>> publicTemplateMap = new HashMap<>(); final Map<String, List<Attribute>> privateTemplateMap = new HashMap<>(); for (String attributeObjectKeyAttribute : properties.stringPropertyNames()) { attributeObjectKeyAttribute = attributeObjectKeyAttribute.trim(); if (attributeObjectKeyAttribute.startsWith(ATTRIBUTE_DOT)) { final String objectKeyAttribute = attributeObjectKeyAttribute.substring(ATTRIBUTE_DOT.length()); int nextDot = objectKeyAttribute.indexOf("."); if (nextDot == -1 || objectKeyAttribute.length() < nextDot + 1) { throw new IllegalArgumentException("Incorrect attribute property name: " + attributeObjectKeyAttribute); } else { final String object = objectKeyAttribute.substring(0, nextDot); final String keyAttribute = objectKeyAttribute.substring(object.length() + 1); nextDot = keyAttribute.indexOf("."); if (nextDot == -1 || keyAttribute.length() < nextDot + 1) { throw new IllegalArgumentException("Incorrect attribute property name: " + attributeObjectKeyAttribute); } else { final String keyType = keyAttribute.substring(0, nextDot); List<Attribute> publicTemplate = publicTemplateMap.get(keyType); if (publicTemplate == null) { publicTemplate = new ArrayList<>(); publicTemplateMap.put(keyType, publicTemplate); } List<Attribute> privateTemplate = privateTemplateMap.get(keyType); if (privateTemplate == null) { privateTemplate = new ArrayList<>(); privateTemplateMap.put(keyType, privateTemplate); } final String attribute = keyAttribute.substring(keyType.length() + 1); final long attributeId; if (attribute.startsWith("0x") || attribute.startsWith("0X")) { attributeId = Long.parseLong(attribute.substring("0x".length()), 16); } else if (attribute.startsWith("CKA_")) { Long id = AttributeNames.longFromName(attribute.substring("CKA_".length())); if (id == null) { throw new IllegalArgumentException("Incorrect attribute property name: " + attributeObjectKeyAttribute + ". Unknown attribute: " + attribute); } attributeId = id; } else { attributeId = Long.parseLong(attribute); } final String value = properties.getProperty(attributeObjectKeyAttribute); final Attribute attributeObject = new Attribute(attributeId, getObjectValue(attribute, value)); switch (object) { case OBJECT_PUBLIC: publicTemplate.add(attributeObject); break; case OBJECT_PRIVATE: privateTemplate.add(attributeObject); break; default: } } } } } return new AttributeProperties(publicTemplateMap, privateTemplateMap); } AttributeProperties(Map<String, List<Attribute>> publicTemplate, Map<String, List<Attribute>> privateTemplate); static AttributeProperties fromWorkerProperties(Properties properties); List<Attribute> getPublicTemplate(final String keyType); List<Attribute> getPrivateTemplate(final String keyType); Properties toWorkerProperties(); @Override String toString();  }### Answer:
@Test(expected = IllegalArgumentException.class) public void testFromWorkerProperties_booleanIllegal() { LOG.info(">testFromWorkerProperties_booleanIllegal"); Properties properties = new Properties(); properties.setProperty("ATTRIBUTE.PRIVATE.RSA.CKA_VERIFY", "not-boolean"); AttributeProperties.fromWorkerProperties(properties); }