### Question:
JmsMessage implements javax.jms.Message { @Override public boolean propertyExists(String name) throws JMSException { return JmsMessagePropertyIntercepter.propertyExists(this, name); } JmsMessage(JmsMessageFacade facade); JmsMessage copy(); @Override int hashCode(); @Override boolean equals(Object o); @Override void acknowledge(); @Override boolean isBodyAssignableTo(@SuppressWarnings("rawtypes") Class target); @Override final T getBody(Class<T> asType); @Override void clearBody(); boolean isValidatePropertyNames(); void setValidatePropertyNames(boolean validatePropertyNames); boolean isReadOnly(); void setReadOnly(boolean readOnly); boolean isReadOnlyBody(); void setReadOnlyBody(boolean readOnlyBody); boolean isReadOnlyProperties(); void setReadOnlyProperties(boolean readOnlyProperties); @Override String getJMSMessageID(); @Override void setJMSMessageID(String value); @Override long getJMSTimestamp(); @Override void setJMSTimestamp(long timestamp); @Override String getJMSCorrelationID(); @Override void setJMSCorrelationID(String correlationId); @Override byte[] getJMSCorrelationIDAsBytes(); @Override void setJMSCorrelationIDAsBytes(byte[] correlationId); @Override Destination getJMSReplyTo(); @Override void setJMSReplyTo(Destination destination); @Override Destination getJMSDestination(); @Override void setJMSDestination(Destination destination); @Override int getJMSDeliveryMode(); @Override void setJMSDeliveryMode(int mode); @Override boolean getJMSRedelivered(); @Override void setJMSRedelivered(boolean redelivered); @Override String getJMSType(); @Override void setJMSType(String type); @Override long getJMSExpiration(); @Override void setJMSExpiration(long expiration); @Override int getJMSPriority(); @Override void setJMSPriority(int priority); @Override long getJMSDeliveryTime(); @Override void setJMSDeliveryTime(long deliveryTime); @Override void clearProperties(); @Override boolean propertyExists(String name); @Override Enumeration<?> getPropertyNames(); Enumeration<?> getAllPropertyNames(); @Override void setObjectProperty(String name, Object value); @Override Object getObjectProperty(String name); @Override boolean getBooleanProperty(String name); @Override byte getByteProperty(String name); @Override short getShortProperty(String name); @Override int getIntProperty(String name); @Override long getLongProperty(String name); @Override float getFloatProperty(String name); @Override double getDoubleProperty(String name); @Override String getStringProperty(String name); @Override void setBooleanProperty(String name, boolean value); @Override void setByteProperty(String name, byte value); @Override void setShortProperty(String name, short value); @Override void setIntProperty(String name, int value); @Override void setLongProperty(String name, long value); @Override void setFloatProperty(String name, float value); @Override void setDoubleProperty(String name, double value); @Override void setStringProperty(String name, String value); JmsAcknowledgeCallback getAcknowledgeCallback(); void setAcknowledgeCallback(JmsAcknowledgeCallback jmsAcknowledgeCallback); void onSend(long producerTtl); void onSendComplete(); void onDispatch(); JmsConnection getConnection(); void setConnection(JmsConnection connection); JmsMessageFacade getFacade(); boolean isExpired(); @Override String toString();  }### Answer:
@Test public void testPropertyExists() throws JMSException { JmsMessage msg = factory.createMessage(); msg.setStringProperty("test", "test"); assertTrue(msg.propertyExists("test")); msg.setIntProperty("JMSXDeliveryCount", 1); assertTrue(msg.propertyExists("JMSXDeliveryCount")); }