I'm attempting to mock com.ibm.mq.jms.MQQueueConnectionFactory and when I do, I get the following error:
java.lang.VerifyError: (class: com/ibm/msg/client/jms/internal/JmsReadablePropertyContextImpl, method: toString signature: ()Ljava/lang/String;) Unable to pop operand off an empty stack
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at javassist.runtime.Desc.getClassObject(Desc.java:43)
at javassist.runtime.Desc.getClassType(Desc.java:152)
at javassist.runtime.Desc.getType(Desc.java:122)
at javassist.runtime.Desc.getType(Desc.java:78)
at com.capitalone.api.commons.web.config.MQAuditSpringConfigTest.testAuditTemplate(MQAuditSpringConfigTest.java:55)
My test starts with:
@RunWith(PowerMockRunner.class)
@MockPolicy(Slf4jMockPolicy.class)
@PrepareForTest({MQAuditSpringConfig.class, MQAuditSpringConfigTest.class, MQConnectionFactory.class,
MQQueueConnectionFactory.class, JmsJndiConnectionFactoryImpl.class, JmsConnectionFactoryImpl.class,
JmsPropertyContextImpl.class, JmsReadablePropertyContextImpl.class})
@SuppressStaticInitializationFor({"com.ibm.mq.jms.MQConnectionFactory", "com.ibm.mq.jms.MQQueueConnectionFactory",
"com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl",
"com.ibm.msg.client.jms.admin.JmsJndiConnectionFactoryImpl",
"com.ibm.msg.client.jms.internal.JmsPropertyContextImpl",
"com.ibm.msg.client.jms.internal.JmsReadablePropertyContextImpl"})
And then the line in question is:
MQQueueConnectionFactory mqFactory = new MQQueueConnectionFactory();