diff --git a/org.springframework.jms/.classpath b/org.springframework.jms/.classpath
index e86feeedb08..22e37ce0d54 100644
--- a/org.springframework.jms/.classpath
+++ b/org.springframework.jms/.classpath
@@ -10,6 +10,8 @@
Two methods are the same as on Person, but if this + * extends person it breaks quite a few tests.. + * + * @author Rod Johnson + * @author Juergen Hoeller + */ +public interface ITestBean { + + int getAge(); + + void setAge(int age); + + String getName(); + + void setName(String name); + + ITestBean getSpouse(); + + void setSpouse(ITestBean spouse); + + ITestBean[] getSpouses(); + + String[] getStringArray(); + + void setStringArray(String[] stringArray); + + /** + * Throws a given (non-null) exception. + */ + void exceptional(Throwable t) throws Throwable; + + Object returnsThis(); + + INestedTestBean getDoctor(); + + INestedTestBean getLawyer(); + + IndexedTestBean getNestedIndexedBean(); + + /** + * Increment the age by one. + * @return the previous age + */ + int haveBirthday(); + + void unreliableFileOperation() throws IOException; + +} \ No newline at end of file diff --git a/org.springframework.jms/src/test/java/org/springframework/beans/IndexedTestBean.java b/org.springframework.jms/src/test/java/org/springframework/beans/IndexedTestBean.java new file mode 100644 index 00000000000..ddb091770ee --- /dev/null +++ b/org.springframework.jms/src/test/java/org/springframework/beans/IndexedTestBean.java @@ -0,0 +1,145 @@ +/* + * Copyright 2002-2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.beans; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedMap; +import java.util.SortedSet; +import java.util.TreeSet; + +/** + * @author Juergen Hoeller + * @since 11.11.2003 + */ +public class IndexedTestBean { + + private TestBean[] array; + + private Collection collection; + + private List list; + + private Set set; + + private SortedSet sortedSet; + + private Map map; + + private SortedMap sortedMap; + + + public IndexedTestBean() { + this(true); + } + + public IndexedTestBean(boolean populate) { + if (populate) { + populate(); + } + } + + public void populate() { + TestBean tb0 = new TestBean("name0", 0); + TestBean tb1 = new TestBean("name1", 0); + TestBean tb2 = new TestBean("name2", 0); + TestBean tb3 = new TestBean("name3", 0); + TestBean tb4 = new TestBean("name4", 0); + TestBean tb5 = new TestBean("name5", 0); + TestBean tb6 = new TestBean("name6", 0); + TestBean tb7 = new TestBean("name7", 0); + TestBean tbX = new TestBean("nameX", 0); + TestBean tbY = new TestBean("nameY", 0); + this.array = new TestBean[] {tb0, tb1}; + this.list = new ArrayList(); + this.list.add(tb2); + this.list.add(tb3); + this.set = new TreeSet(); + this.set.add(tb6); + this.set.add(tb7); + this.map = new HashMap(); + this.map.put("key1", tb4); + this.map.put("key2", tb5); + this.map.put("key.3", tb5); + List list = new ArrayList(); + list.add(tbX); + list.add(tbY); + this.map.put("key4", list); + } + + + public TestBean[] getArray() { + return array; + } + + public void setArray(TestBean[] array) { + this.array = array; + } + + public Collection getCollection() { + return collection; + } + + public void setCollection(Collection collection) { + this.collection = collection; + } + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + public Set getSet() { + return set; + } + + public void setSet(Set set) { + this.set = set; + } + + public SortedSet getSortedSet() { + return sortedSet; + } + + public void setSortedSet(SortedSet sortedSet) { + this.sortedSet = sortedSet; + } + + public Map getMap() { + return map; + } + + public void setMap(Map map) { + this.map = map; + } + + public SortedMap getSortedMap() { + return sortedMap; + } + + public void setSortedMap(SortedMap sortedMap) { + this.sortedMap = sortedMap; + } + +} \ No newline at end of file diff --git a/org.springframework.jms/src/test/java/org/springframework/beans/NestedTestBean.java b/org.springframework.jms/src/test/java/org/springframework/beans/NestedTestBean.java new file mode 100644 index 00000000000..a06e15d150b --- /dev/null +++ b/org.springframework.jms/src/test/java/org/springframework/beans/NestedTestBean.java @@ -0,0 +1,60 @@ +/* + * Copyright 2002-2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.beans; + +/** + * Simple nested test bean used for testing bean factories, AOP framework etc. + * + * @author Trevor D. Cook + * @since 30.09.2003 + */ +public class NestedTestBean implements INestedTestBean { + + private String company = ""; + + public NestedTestBean() { + } + + public NestedTestBean(String company) { + setCompany(company); + } + + public void setCompany(String company) { + this.company = (company != null ? company : ""); + } + + public String getCompany() { + return company; + } + + public boolean equals(Object obj) { + if (!(obj instanceof NestedTestBean)) { + return false; + } + NestedTestBean ntb = (NestedTestBean) obj; + return this.company.equals(ntb.company); + } + + public int hashCode() { + return this.company.hashCode(); + } + + public String toString() { + return "NestedTestBean: " + this.company; + } + +} \ No newline at end of file diff --git a/org.springframework.jms/src/test/java/org/springframework/beans/TestBean.java b/org.springframework.jms/src/test/java/org/springframework/beans/TestBean.java new file mode 100644 index 00000000000..ef4aef309ea --- /dev/null +++ b/org.springframework.jms/src/test/java/org/springframework/beans/TestBean.java @@ -0,0 +1,437 @@ +/* + * Copyright 2002-2008 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.beans; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + +import org.springframework.beans.factory.BeanFactory; +import org.springframework.beans.factory.BeanFactoryAware; +import org.springframework.beans.factory.BeanNameAware; +import org.springframework.util.ObjectUtils; + +/** + * Simple test bean used for testing bean factories, the AOP framework etc. + * + * @author Rod Johnson + * @author Juergen Hoeller + * @since 15 April 2001 + */ +public class TestBean implements BeanNameAware, BeanFactoryAware, ITestBean, IOther, Comparable { + + private String beanName; + + private String country; + + private BeanFactory beanFactory; + + private boolean postProcessed; + + private String name; + + private String sex; + + private int age; + + private boolean jedi; + + private ITestBean[] spouses; + + private String touchy; + + private String[] stringArray; + + private Integer[] someIntegerArray; + + private Date date = new Date(); + + private Float myFloat = new Float(0.0); + + private Collection friends = new LinkedList(); + + private Set someSet = new HashSet(); + + private Map someMap = new HashMap(); + + private List someList = new ArrayList(); + + private Properties someProperties = new Properties(); + + private INestedTestBean doctor = new NestedTestBean(); + + private INestedTestBean lawyer = new NestedTestBean(); + + private IndexedTestBean nestedIndexedBean; + + private boolean destroyed; + + private Number someNumber; + + private Colour favouriteColour; + + private Boolean someBoolean; + + private List otherColours; + + private List pets; + + + public TestBean() { + } + + public TestBean(String name) { + this.name = name; + } + + public TestBean(ITestBean spouse) { + this.spouses = new ITestBean[] {spouse}; + } + + public TestBean(String name, int age) { + this.name = name; + this.age = age; + } + + public TestBean(ITestBean spouse, Properties someProperties) { + this.spouses = new ITestBean[] {spouse}; + this.someProperties = someProperties; + } + + public TestBean(List someList) { + this.someList = someList; + } + + public TestBean(Set someSet) { + this.someSet = someSet; + } + + public TestBean(Map someMap) { + this.someMap = someMap; + } + + public TestBean(Properties someProperties) { + this.someProperties = someProperties; + } + + + public void setBeanName(String beanName) { + this.beanName = beanName; + } + + public String getBeanName() { + return beanName; + } + + public void setBeanFactory(BeanFactory beanFactory) { + this.beanFactory = beanFactory; + } + + public BeanFactory getBeanFactory() { + return beanFactory; + } + + public void setPostProcessed(boolean postProcessed) { + this.postProcessed = postProcessed; + } + + public boolean isPostProcessed() { + return postProcessed; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + if (this.name == null) { + this.name = sex; + } + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public boolean isJedi() { + return jedi; + } + + public void setJedi(boolean jedi) { + this.jedi = jedi; + } + + public ITestBean getSpouse() { + return (spouses != null ? spouses[0] : null); + } + + public void setSpouse(ITestBean spouse) { + this.spouses = new ITestBean[] {spouse}; + } + + public ITestBean[] getSpouses() { + return spouses; + } + + public String getTouchy() { + return touchy; + } + + public void setTouchy(String touchy) throws Exception { + if (touchy.indexOf('.') != -1) { + throw new Exception("Can't contain a ."); + } + if (touchy.indexOf(',') != -1) { + throw new NumberFormatException("Number format exception: contains a ,"); + } + this.touchy = touchy; + } + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public String[] getStringArray() { + return stringArray; + } + + public void setStringArray(String[] stringArray) { + this.stringArray = stringArray; + } + + public Integer[] getSomeIntegerArray() { + return someIntegerArray; + } + + public void setSomeIntegerArray(Integer[] someIntegerArray) { + this.someIntegerArray = someIntegerArray; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + public Float getMyFloat() { + return myFloat; + } + + public void setMyFloat(Float myFloat) { + this.myFloat = myFloat; + } + + public Collection getFriends() { + return friends; + } + + public void setFriends(Collection friends) { + this.friends = friends; + } + + public Set getSomeSet() { + return someSet; + } + + public void setSomeSet(Set someSet) { + this.someSet = someSet; + } + + public Map getSomeMap() { + return someMap; + } + + public void setSomeMap(Map someMap) { + this.someMap = someMap; + } + + public List getSomeList() { + return someList; + } + + public void setSomeList(List someList) { + this.someList = someList; + } + + public Properties getSomeProperties() { + return someProperties; + } + + public void setSomeProperties(Properties someProperties) { + this.someProperties = someProperties; + } + + public INestedTestBean getDoctor() { + return doctor; + } + + public void setDoctor(INestedTestBean doctor) { + this.doctor = doctor; + } + + public INestedTestBean getLawyer() { + return lawyer; + } + + public void setLawyer(INestedTestBean lawyer) { + this.lawyer = lawyer; + } + + public Number getSomeNumber() { + return someNumber; + } + + public void setSomeNumber(Number someNumber) { + this.someNumber = someNumber; + } + + public Colour getFavouriteColour() { + return favouriteColour; + } + + public void setFavouriteColour(Colour favouriteColour) { + this.favouriteColour = favouriteColour; + } + + public Boolean getSomeBoolean() { + return someBoolean; + } + + public void setSomeBoolean(Boolean someBoolean) { + this.someBoolean = someBoolean; + } + + public IndexedTestBean getNestedIndexedBean() { + return nestedIndexedBean; + } + + public void setNestedIndexedBean(IndexedTestBean nestedIndexedBean) { + this.nestedIndexedBean = nestedIndexedBean; + } + + public List getOtherColours() { + return otherColours; + } + + public void setOtherColours(List otherColours) { + this.otherColours = otherColours; + } + + public List getPets() { + return pets; + } + + public void setPets(List pets) { + this.pets = pets; + } + + + /** + * @see ITestBean#exceptional(Throwable) + */ + public void exceptional(Throwable t) throws Throwable { + if (t != null) { + throw t; + } + } + + public void unreliableFileOperation() throws IOException { + throw new IOException(); + } + /** + * @see ITestBean#returnsThis() + */ + public Object returnsThis() { + return this; + } + + /** + * @see IOther#absquatulate() + */ + public void absquatulate() { + } + + public int haveBirthday() { + return age++; + } + + + public void destroy() { + this.destroyed = true; + } + + public boolean wasDestroyed() { + return destroyed; + } + + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (other == null || !(other instanceof TestBean)) { + return false; + } + TestBean tb2 = (TestBean) other; + return (ObjectUtils.nullSafeEquals(this.name, tb2.name) && this.age == tb2.age); + } + + public int hashCode() { + return this.age; + } + + public int compareTo(Object other) { + if (this.name != null && other instanceof TestBean) { + return this.name.compareTo(((TestBean) other).getName()); + } + else { + return 1; + } + } + + public String toString() { + return this.name; + } + +} \ No newline at end of file diff --git a/org.springframework.testsuite/src/test/java/org/springframework/core/task/StubTaskExecutor.java b/org.springframework.jms/src/test/java/org/springframework/core/task/StubTaskExecutor.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/core/task/StubTaskExecutor.java rename to org.springframework.jms/src/test/java/org/springframework/core/task/StubTaskExecutor.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jca/StubActivationSpec.java b/org.springframework.jms/src/test/java/org/springframework/jca/StubActivationSpec.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jca/StubActivationSpec.java rename to org.springframework.jms/src/test/java/org/springframework/jca/StubActivationSpec.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jca/StubResourceAdapter.java b/org.springframework.jms/src/test/java/org/springframework/jca/StubResourceAdapter.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jca/StubResourceAdapter.java rename to org.springframework.jms/src/test/java/org/springframework/jca/StubResourceAdapter.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/StubConnectionFactory.java b/org.springframework.jms/src/test/java/org/springframework/jms/StubConnectionFactory.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/StubConnectionFactory.java rename to org.springframework.jms/src/test/java/org/springframework/jms/StubConnectionFactory.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/StubQueue.java b/org.springframework.jms/src/test/java/org/springframework/jms/StubQueue.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/StubQueue.java rename to org.springframework.jms/src/test/java/org/springframework/jms/StubQueue.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/StubTopic.java b/org.springframework.jms/src/test/java/org/springframework/jms/StubTopic.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/StubTopic.java rename to org.springframework.jms/src/test/java/org/springframework/jms/StubTopic.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/config/JmsNamespaceHandlerTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/config/JmsNamespaceHandlerTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/config/JmsNamespaceHandlerTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/config/JmsNamespaceHandlerTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/config/jmsNamespaceHandlerTests.xml b/org.springframework.jms/src/test/java/org/springframework/jms/config/jmsNamespaceHandlerTests.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/config/jmsNamespaceHandlerTests.xml rename to org.springframework.jms/src/test/java/org/springframework/jms/config/jmsNamespaceHandlerTests.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/connection/JmsTransactionManagerTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/connection/JmsTransactionManagerTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/connection/JmsTransactionManagerTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/connection/JmsTransactionManagerTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/connection/SingleConnectionFactoryTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/connection/SingleConnectionFactoryTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/connection/SingleConnectionFactoryTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/connection/SingleConnectionFactoryTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/connection/TestConnection.java b/org.springframework.jms/src/test/java/org/springframework/jms/connection/TestConnection.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/connection/TestConnection.java rename to org.springframework.jms/src/test/java/org/springframework/jms/connection/TestConnection.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/connection/TestExceptionListener.java b/org.springframework.jms/src/test/java/org/springframework/jms/connection/TestExceptionListener.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/connection/TestExceptionListener.java rename to org.springframework.jms/src/test/java/org/springframework/jms/connection/TestExceptionListener.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplate102JtaTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplate102JtaTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplate102JtaTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplate102JtaTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplate102Tests.java b/org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplate102Tests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplate102Tests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplate102Tests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplate102TransactedTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplate102TransactedTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplate102TransactedTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplate102TransactedTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplateJtaTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplateJtaTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplateJtaTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplateJtaTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplateTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplateTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplateTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplateTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplateTransactedTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplateTransactedTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/core/JmsTemplateTransactedTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/core/JmsTemplateTransactedTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/core/support/JmsGatewaySupportTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/core/support/JmsGatewaySupportTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/core/support/JmsGatewaySupportTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/core/support/JmsGatewaySupportTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/AbstractMessageListenerContainerTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/AbstractMessageListenerContainerTests.java similarity index 67% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/AbstractMessageListenerContainerTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/AbstractMessageListenerContainerTests.java index 77e28962507..78c21266462 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/AbstractMessageListenerContainerTests.java +++ b/org.springframework.jms/src/test/java/org/springframework/jms/listener/AbstractMessageListenerContainerTests.java @@ -16,34 +16,27 @@ package org.springframework.jms.listener; -import junit.framework.TestCase; - -import org.springframework.test.AssertThrows; +import org.junit.Test; /** * Unit tests for the {@link AbstractMessageListenerContainer} class. * * @author Rick Evans + * @author Chris Beams */ -public abstract class AbstractMessageListenerContainerTests extends TestCase { +public abstract class AbstractMessageListenerContainerTests { protected abstract AbstractMessageListenerContainer getContainer(); - + + @Test(expected=IllegalArgumentException.class) public void testSettingMessageListenerToANullType() throws Exception { - new AssertThrows(IllegalArgumentException.class) { - public void test() throws Exception { - getContainer().setMessageListener(null); - } - }.runTest(); + getContainer().setMessageListener(null); } + @Test(expected=IllegalArgumentException.class) public void testSettingMessageListenerToAnUnsupportedType() throws Exception { - new AssertThrows(IllegalArgumentException.class) { - public void test() throws Exception { - getContainer().setMessageListener("Bingo"); - } - }.runTest(); + getContainer().setMessageListener("Bingo"); } } diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java similarity index 98% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java index d029d74b752..a9781add764 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java +++ b/org.springframework.jms/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java @@ -16,6 +16,8 @@ package org.springframework.jms.listener; +import static org.junit.Assert.*; + import java.util.HashSet; import javax.jms.Connection; @@ -29,14 +31,15 @@ import javax.jms.Session; import org.easymock.MockControl; import org.easymock.internal.AlwaysMatcher; - +import org.junit.Before; +import org.junit.Test; import org.springframework.core.task.TaskExecutor; import org.springframework.jms.StubQueue; -import org.springframework.test.AssertThrows; /** * @author Rick Evans * @author Juergen Hoeller + * @author Chris Beams */ public class SimpleMessageListenerContainerTests extends AbstractMessageListenerContainerTests { @@ -50,7 +53,8 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener private SimpleMessageListenerContainer container; - protected void setUp() throws Exception { + @Before + public void setUp() throws Exception { this.container = (SimpleMessageListenerContainer) getContainer(); } @@ -59,6 +63,7 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener } + @Test public void testSessionTransactedModeReallyDoesDefaultToFalse() throws Exception { assertFalse("The [pubSubLocal] property of SimpleMessageListenerContainer " + "must default to false. Change this test (and the " + @@ -66,24 +71,19 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener container.isPubSubNoLocal()); } + @Test(expected=IllegalArgumentException.class) public void testSettingConcurrentConsumersToZeroIsNotAllowed() throws Exception { - new AssertThrows(IllegalArgumentException.class) { - public void test() throws Exception { - container.setConcurrentConsumers(0); - container.afterPropertiesSet(); - } - }.runTest(); + container.setConcurrentConsumers(0); + container.afterPropertiesSet(); } + @Test(expected=IllegalArgumentException.class) public void testSettingConcurrentConsumersToANegativeValueIsNotAllowed() throws Exception { - new AssertThrows(IllegalArgumentException.class) { - public void test() throws Exception { - container.setConcurrentConsumers(-198); - container.afterPropertiesSet(); - } - }.runTest(); + container.setConcurrentConsumers(-198); + container.afterPropertiesSet(); } + @Test public void testInitDoesNotStartTheConnectionIfAutoStartIsSetToFalse() throws Exception { MockControl mockMessageConsumer = MockControl.createControl(MessageConsumer.class); MessageConsumer messageConsumer = (MessageConsumer) mockMessageConsumer.getMock(); @@ -131,6 +131,7 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener mockConnectionFactory.verify(); } + @Test public void testInitStartsTheConnectionByDefault() throws Exception { MockControl mockMessageConsumer = MockControl.createControl(MessageConsumer.class); MessageConsumer messageConsumer = (MessageConsumer) mockMessageConsumer.getMock(); @@ -180,6 +181,7 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener mockConnectionFactory.verify(); } + @Test public void testCorrectSessionExposedForSessionAwareMessageListenerInvocation() throws Exception { final SimpleMessageConsumer messageConsumer = new SimpleMessageConsumer(); @@ -249,6 +251,7 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener mockConnectionFactory.verify(); } + @Test public void testTaskExecutorCorrectlyInvokedWhenSpecified() throws Exception { final SimpleMessageConsumer messageConsumer = new SimpleMessageConsumer(); @@ -308,6 +311,7 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener mockConnectionFactory.verify(); } + @Test public void testRegisteredExceptionListenerIsInvokedOnException() throws Exception { final SimpleMessageConsumer messageConsumer = new SimpleMessageConsumer(); @@ -376,6 +380,7 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener mockConnectionFactory.verify(); } + @Test public void testNoRollbackOccursIfSessionIsNotTransactedAndThatExceptionsDo_NOT_Propagate() throws Exception { final SimpleMessageConsumer messageConsumer = new SimpleMessageConsumer(); @@ -433,6 +438,7 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener mockConnectionFactory.verify(); } + @Test public void testTransactedSessionsGetRollbackLogicAppliedAndThatExceptionsStillDo_NOT_Propagate() throws Exception { this.container.setSessionTransacted(true); @@ -495,6 +501,7 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener mockConnectionFactory.verify(); } + @Test public void testDestroyClosesConsumersSessionsAndConnectionInThatOrder() throws Exception { MockControl mockMessageConsumer = MockControl.createControl(MessageConsumer.class); MessageConsumer messageConsumer = (MessageConsumer) mockMessageConsumer.getMock(); diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/MessageContentsDelegate.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/MessageContentsDelegate.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/MessageContentsDelegate.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/MessageContentsDelegate.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/MessageDelegate.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/MessageDelegate.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/MessageDelegate.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/MessageDelegate.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapter102Tests.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapter102Tests.java similarity index 94% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapter102Tests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapter102Tests.java index 663173c452b..89bdeab9370 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapter102Tests.java +++ b/org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapter102Tests.java @@ -16,25 +16,38 @@ package org.springframework.jms.listener.adapter; -import junit.framework.TestCase; -import org.easymock.MockControl; -import org.springframework.jms.support.converter.SimpleMessageConverter102; -import org.springframework.test.AssertThrows; +import static org.junit.Assert.*; -import javax.jms.*; +import javax.jms.BytesMessage; +import javax.jms.InvalidDestinationException; +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.Queue; +import javax.jms.QueueSender; +import javax.jms.QueueSession; +import javax.jms.TextMessage; +import javax.jms.Topic; +import javax.jms.TopicPublisher; +import javax.jms.TopicSession; + +import org.easymock.MockControl; +import org.junit.Test; +import org.springframework.jms.support.converter.SimpleMessageConverter102; /** * Unit tests for the {@link MessageListenerAdapter102} class. * * @author Rick Evans + * @author Chris Beams */ -public final class MessageListenerAdapter102Tests extends TestCase { +public final class MessageListenerAdapter102Tests { private static final String TEXT = "The Runaways"; private static final String CORRELATION_ID = "100"; private static final String RESPONSE_TEXT = "Old Lace"; + @Test public void testWithMessageContentsDelegateForBytesMessage() throws Exception { MockControl mockBytesMessage = MockControl.createControl(BytesMessage.class); @@ -59,6 +72,7 @@ public final class MessageListenerAdapter102Tests extends TestCase { mockBytesMessage.verify(); } + @Test public void testWithMessageDelegate() throws Exception { MockControl mockTextMessage = MockControl.createControl(TextMessage.class); @@ -80,12 +94,14 @@ public final class MessageListenerAdapter102Tests extends TestCase { mockTextMessage.verify(); } + @Test public void testThatTheDefaultMessageConverterisIndeedTheSimpleMessageConverter102() throws Exception { MessageListenerAdapter102 adapter = new MessageListenerAdapter102(); assertNotNull("The default [MessageConverter] must never be null.", adapter.getMessageConverter()); assertTrue("The default [MessageConverter] must be of the type [SimpleMessageConverter102]; if you've just changed it, then change this test to reflect your change.", adapter.getMessageConverter() instanceof SimpleMessageConverter102); } + @Test public void testWithResponsiveMessageDelegate_DoesNotSendReturnTextMessageIfNoSessionSupplied() throws Exception { MockControl mockTextMessage = MockControl.createControl(TextMessage.class); @@ -107,6 +123,7 @@ public final class MessageListenerAdapter102Tests extends TestCase { mockTextMessage.verify(); } + @Test public void testWithResponsiveMessageDelegateWithDefaultDestination_SendsReturnTextMessageWhenSessionSuppliedForQueue() throws Exception { MockControl mockDestination = MockControl.createControl(Queue.class); @@ -167,6 +184,7 @@ public final class MessageListenerAdapter102Tests extends TestCase { mockQueueSender.verify(); } + @Test public void testWithResponsiveMessageDelegateWithDefaultDestination_SendsReturnTextMessageWhenSessionSuppliedForTopic() throws Exception { MockControl mockDestination = MockControl.createControl(Topic.class); @@ -227,6 +245,7 @@ public final class MessageListenerAdapter102Tests extends TestCase { mockTopicPublisher.verify(); } + @Test public void testWithResponsiveMessageDelegateNoDefaultDestination_SendsReturnTextMessageWhenSessionSupplied() throws Exception { MockControl mockDestination = MockControl.createControl(Queue.class); @@ -286,6 +305,7 @@ public final class MessageListenerAdapter102Tests extends TestCase { mockQueueSender.verify(); } + @Test public void testWithResponsiveMessageDelegateNoDefaultDestinationAndNoReplyToDestination_SendsReturnTextMessageWhenSessionSupplied() throws Exception { MockControl mockSentTextMessage = MockControl.createControl(TextMessage.class); @@ -321,11 +341,10 @@ public final class MessageListenerAdapter102Tests extends TestCase { return message; } }; - new AssertThrows(InvalidDestinationException.class) { - public void test() throws Exception { - adapter.onMessage(sentTextMessage, session); - } - }.runTest(); + try { + adapter.onMessage(sentTextMessage, session); + fail("expected InvalidDestinationException"); + } catch (InvalidDestinationException ex) { /* expected */ } mockDelegate.verify(); mockSentTextMessage.verify(); @@ -333,6 +352,7 @@ public final class MessageListenerAdapter102Tests extends TestCase { mockSession.verify(); } + @Test public void testWithResponsiveMessageDelegateNoDefaultDestination_SendsReturnTextMessageWhenSessionSupplied_AndSendingThrowsJMSException() throws Exception { MockControl mockDestination = MockControl.createControl(Queue.class); @@ -383,11 +403,10 @@ public final class MessageListenerAdapter102Tests extends TestCase { return message; } }; - new AssertThrows(JMSException.class) { - public void test() throws Exception { - adapter.onMessage(sentTextMessage, session); - } - }.runTest(); + try { + adapter.onMessage(sentTextMessage, session); + fail("expected JMSException"); + } catch (JMSException ex) { /* expected */ } mockDelegate.verify(); mockSentTextMessage.verify(); @@ -397,6 +416,7 @@ public final class MessageListenerAdapter102Tests extends TestCase { mockQueueSender.verify(); } + @Test public void testWithResponsiveMessageDelegateDoesNotSendReturnTextMessageWhenSessionSupplied_AndListenerMethodThrowsException() throws Exception { MockControl mockSentTextMessage = MockControl.createControl(TextMessage.class); @@ -418,11 +438,10 @@ public final class MessageListenerAdapter102Tests extends TestCase { return message; } }; - new AssertThrows(ListenerExecutionFailedException.class) { - public void test() throws Exception { - adapter.onMessage(sentTextMessage, session); - } - }.runTest(); + try { + adapter.onMessage(sentTextMessage, session); + fail("expected ListenerExecutionFailedException"); + } catch (ListenerExecutionFailedException ex) { /* expected */ } mockDelegate.verify(); mockSentTextMessage.verify(); diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapterTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapterTests.java similarity index 96% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapterTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapterTests.java index b66d07a9076..59838f8136f 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapterTests.java +++ b/org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/MessageListenerAdapterTests.java @@ -16,6 +16,8 @@ package org.springframework.jms.listener.adapter; +import static org.junit.Assert.*; + import java.io.Serializable; import javax.jms.BytesMessage; @@ -33,16 +35,17 @@ import javax.jms.TextMessage; import junit.framework.TestCase; import org.easymock.MockControl; +import org.junit.Test; import org.springframework.jms.support.converter.MessageConversionException; import org.springframework.jms.support.converter.SimpleMessageConverter; -import org.springframework.test.AssertThrows; /** * @author Rick Evans * @author Juergen Hoeller + * @author Chris Beams */ -public class MessageListenerAdapterTests extends TestCase { +public class MessageListenerAdapterTests { private static final String TEXT = "I fancy a good cuppa right now"; @@ -55,6 +58,7 @@ public class MessageListenerAdapterTests extends TestCase { private static final String RESPONSE_TEXT = "... wi' some full fat creamy milk. Top banana."; + @Test public void testWithMessageContentsDelegateForTextMessage() throws Exception { MockControl mockTextMessage = MockControl.createControl(TextMessage.class); TextMessage textMessage = (TextMessage) mockTextMessage.getMock(); @@ -76,6 +80,7 @@ public class MessageListenerAdapterTests extends TestCase { mockTextMessage.verify(); } + @Test public void testWithMessageContentsDelegateForBytesMessage() throws Exception { MockControl mockBytesMessage = MockControl.createControl(BytesMessage.class); BytesMessage bytesMessage = (BytesMessage) mockBytesMessage.getMock(); @@ -101,6 +106,7 @@ public class MessageListenerAdapterTests extends TestCase { mockBytesMessage.verify(); } + @Test public void testWithMessageContentsDelegateForObjectMessage() throws Exception { MockControl mockObjectMessage = MockControl.createControl(ObjectMessage.class); ObjectMessage objectMessage = (ObjectMessage) mockObjectMessage.getMock(); @@ -121,6 +127,7 @@ public class MessageListenerAdapterTests extends TestCase { mockObjectMessage.verify(); } + @Test public void testWithMessageContentsDelegateForObjectMessageWithPlainObject() throws Exception { MockControl mockObjectMessage = MockControl.createControl(ObjectMessage.class); ObjectMessage objectMessage = (ObjectMessage) mockObjectMessage.getMock(); @@ -141,6 +148,7 @@ public class MessageListenerAdapterTests extends TestCase { mockObjectMessage.verify(); } + @Test public void testWithMessageDelegate() throws Exception { MockControl mockTextMessage = MockControl.createControl(TextMessage.class); TextMessage textMessage = (TextMessage) mockTextMessage.getMock(); @@ -161,6 +169,7 @@ public class MessageListenerAdapterTests extends TestCase { mockTextMessage.verify(); } + @Test public void testWhenTheAdapterItselfIsTheDelegate() throws Exception { MockControl mockTextMessage = MockControl.createControl(TextMessage.class); TextMessage textMessage = (TextMessage) mockTextMessage.getMock(); @@ -176,6 +185,7 @@ public class MessageListenerAdapterTests extends TestCase { mockTextMessage.verify(); } + @Test public void testRainyDayWithNoApplicableHandlingMethods() throws Exception { MockControl mockTextMessage = MockControl.createControl(TextMessage.class); TextMessage textMessage = (TextMessage) mockTextMessage.getMock(); @@ -192,6 +202,7 @@ public class MessageListenerAdapterTests extends TestCase { mockTextMessage.verify(); } + @Test public void testThatAnExceptionThrownFromTheHandlingMethodIsSimplySwallowedByDefault() throws Exception { final IllegalArgumentException exception = new IllegalArgumentException(); @@ -224,6 +235,7 @@ public class MessageListenerAdapterTests extends TestCase { mockTextMessage.verify(); } + @Test public void testThatTheDefaultMessageConverterisIndeedTheSimpleMessageConverter() throws Exception { MessageListenerAdapter adapter = new MessageListenerAdapter(); assertNotNull("The default [MessageConverter] must never be null.", adapter.getMessageConverter()); @@ -231,16 +243,19 @@ public class MessageListenerAdapterTests extends TestCase { adapter.getMessageConverter() instanceof SimpleMessageConverter); } + @Test public void testThatWhenNoDelegateIsSuppliedTheDelegateIsAssumedToBeTheMessageListenerAdapterItself() throws Exception { MessageListenerAdapter adapter = new MessageListenerAdapter(); assertSame(adapter, adapter.getDelegate()); } + @Test public void testThatTheDefaultMessageHandlingMethodNameIsTheConstantDefault() throws Exception { MessageListenerAdapter adapter = new MessageListenerAdapter(); assertEquals(MessageListenerAdapter.ORIGINAL_DEFAULT_LISTENER_METHOD, adapter.getDefaultListenerMethod()); } + @Test public void testWithResponsiveMessageDelegate_DoesNotSendReturnTextMessageIfNoSessionSupplied() throws Exception { MockControl mockTextMessage = MockControl.createControl(TextMessage.class); TextMessage textMessage = (TextMessage) mockTextMessage.getMock(); @@ -261,6 +276,7 @@ public class MessageListenerAdapterTests extends TestCase { mockTextMessage.verify(); } + @Test public void testWithResponsiveMessageDelegateWithDefaultDestination_SendsReturnTextMessageWhenSessionSupplied() throws Exception { MockControl mockDestination = MockControl.createControl(Queue.class); Queue destination = (Queue) mockDestination.getMock(); @@ -320,6 +336,7 @@ public class MessageListenerAdapterTests extends TestCase { mockQueueSender.verify(); } + @Test public void testWithResponsiveMessageDelegateNoDefaultDestination_SendsReturnTextMessageWhenSessionSupplied() throws Exception { MockControl mockDestination = MockControl.createControl(Queue.class); Queue destination = (Queue) mockDestination.getMock(); @@ -380,6 +397,7 @@ public class MessageListenerAdapterTests extends TestCase { mockMessageProducer.verify(); } + @Test public void testWithResponsiveMessageDelegateNoDefaultDestinationAndNoReplyToDestination_SendsReturnTextMessageWhenSessionSupplied() throws Exception { MockControl mockSentTextMessage = MockControl.createControl(TextMessage.class); final TextMessage sentTextMessage = (TextMessage) mockSentTextMessage.getMock(); @@ -414,11 +432,10 @@ public class MessageListenerAdapterTests extends TestCase { return message; } }; - new AssertThrows(InvalidDestinationException.class) { - public void test() throws Exception { - adapter.onMessage(sentTextMessage, session); - } - }.runTest(); + try { + adapter.onMessage(sentTextMessage, session); + fail("expected InvalidDestinationException"); + } catch(InvalidDestinationException ex) { /* expected */ } mockDelegate.verify(); mockSentTextMessage.verify(); @@ -426,6 +443,7 @@ public class MessageListenerAdapterTests extends TestCase { mockSession.verify(); } + @Test public void testWithResponsiveMessageDelegateNoDefaultDestination_SendsReturnTextMessageWhenSessionSupplied_AndSendingThrowsJMSException() throws Exception { MockControl mockDestination = MockControl.createControl(Queue.class); Queue destination = (Queue) mockDestination.getMock(); @@ -475,11 +493,10 @@ public class MessageListenerAdapterTests extends TestCase { return message; } }; - new AssertThrows(JMSException.class) { - public void test() throws Exception { - adapter.onMessage(sentTextMessage, session); - } - }.runTest(); + try { + adapter.onMessage(sentTextMessage, session); + fail("expected JMSException"); + } catch(JMSException ex) { /* expected */ } mockDelegate.verify(); mockSentTextMessage.verify(); @@ -489,6 +506,7 @@ public class MessageListenerAdapterTests extends TestCase { mockMessageProducer.verify(); } + @Test public void testWithResponsiveMessageDelegateDoesNotSendReturnTextMessageWhenSessionSupplied_AndListenerMethodThrowsException() throws Exception { MockControl mockMessage = MockControl.createControl(TextMessage.class); final TextMessage message = (TextMessage) mockMessage.getMock(); @@ -509,17 +527,17 @@ public class MessageListenerAdapterTests extends TestCase { return message; } }; - new AssertThrows(ListenerExecutionFailedException.class) { - public void test() throws Exception { - adapter.onMessage(message, session); - } - }.runTest(); + try { + adapter.onMessage(message, session); + fail("expected ListenerExecutionFailedException"); + } catch(ListenerExecutionFailedException ex) { /* expected */ } mockDelegate.verify(); mockMessage.verify(); mockSession.verify(); } + @Test public void testFailsIfNoDefaultListenerMethodNameIsSupplied() throws Exception { MockControl mockMessage = MockControl.createControl(TextMessage.class); final TextMessage message = (TextMessage) mockMessage.getMock(); @@ -539,6 +557,7 @@ public class MessageListenerAdapterTests extends TestCase { mockMessage.verify(); } + @Test public void testFailsWhenOverriddenGetListenerMethodNameReturnsNull() throws Exception { MockControl mockMessage = MockControl.createControl(TextMessage.class); final TextMessage message = (TextMessage) mockMessage.getMock(); @@ -561,6 +580,7 @@ public class MessageListenerAdapterTests extends TestCase { mockMessage.verify(); } + @Test public void testWithResponsiveMessageDelegateWhenReturnTypeIsNotAJMSMessageAndNoMessageConverterIsSupplied() throws Exception { MockControl mockSentTextMessage = MockControl.createControl(TextMessage.class); final TextMessage sentTextMessage = (TextMessage) mockSentTextMessage.getMock(); @@ -582,17 +602,17 @@ public class MessageListenerAdapterTests extends TestCase { } }; adapter.setMessageConverter(null); - new AssertThrows(MessageConversionException.class) { - public void test() throws Exception { - adapter.onMessage(sentTextMessage, session); - } - }.runTest(); + try { + adapter.onMessage(sentTextMessage, session); + fail("expected MessageConversionException"); + } catch(MessageConversionException ex) { /* expected */ } mockDelegate.verify(); mockSentTextMessage.verify(); mockSession.verify(); } + @Test public void testWithResponsiveMessageDelegateWhenReturnTypeIsAJMSMessageAndNoMessageConverterIsSupplied() throws Exception { MockControl mockDestination = MockControl.createControl(Queue.class); Queue destination = (Queue) mockDestination.getMock(); diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/ResponsiveJmsTextMessageReturningMessageDelegate.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/ResponsiveJmsTextMessageReturningMessageDelegate.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/ResponsiveJmsTextMessageReturningMessageDelegate.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/ResponsiveJmsTextMessageReturningMessageDelegate.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/ResponsiveMessageDelegate.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/ResponsiveMessageDelegate.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/ResponsiveMessageDelegate.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/ResponsiveMessageDelegate.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/StubMessageListenerAdapter.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/StubMessageListenerAdapter.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/StubMessageListenerAdapter.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/StubMessageListenerAdapter.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/StubMessageListenerAdapter102.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/StubMessageListenerAdapter102.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/adapter/StubMessageListenerAdapter102.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/adapter/StubMessageListenerAdapter102.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/endpoint/DefaultJmsActivationSpecFactoryTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/endpoint/DefaultJmsActivationSpecFactoryTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/endpoint/DefaultJmsActivationSpecFactoryTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/endpoint/DefaultJmsActivationSpecFactoryTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/endpoint/StubJmsActivationSpec.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/endpoint/StubJmsActivationSpec.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/endpoint/StubJmsActivationSpec.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/endpoint/StubJmsActivationSpec.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/listener/endpoint/StubJmsActivationSpecFactory.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/endpoint/StubJmsActivationSpecFactory.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/listener/endpoint/StubJmsActivationSpecFactory.java rename to org.springframework.jms/src/test/java/org/springframework/jms/listener/endpoint/StubJmsActivationSpecFactory.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/remoting/JmsInvokerTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/remoting/JmsInvokerTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/remoting/JmsInvokerTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/remoting/JmsInvokerTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/support/JmsAccessorTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/support/JmsAccessorTests.java similarity index 78% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/support/JmsAccessorTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/support/JmsAccessorTests.java index 61464dfa58d..df0a894fdb5 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/jms/support/JmsAccessorTests.java +++ b/org.springframework.jms/src/test/java/org/springframework/jms/support/JmsAccessorTests.java @@ -16,27 +16,27 @@ package org.springframework.jms.support; -import junit.framework.TestCase; -import org.springframework.test.AssertThrows; +import static org.junit.Assert.*; import javax.jms.Session; +import org.junit.Test; + /** * Unit tests for the {@link JmsAccessor} class. * * @author Rick Evans + * @author Chris Beams */ -public final class JmsAccessorTests extends TestCase { +public final class JmsAccessorTests { + @Test(expected=IllegalArgumentException.class) public void testChokesIfConnectionFactoryIsNotSupplied() throws Exception { - new AssertThrows(IllegalArgumentException.class) { - public void test() throws Exception { - JmsAccessor accessor = new StubJmsAccessor(); - accessor.afterPropertiesSet(); - } - }.runTest(); - } + JmsAccessor accessor = new StubJmsAccessor(); + accessor.afterPropertiesSet(); + } + @Test public void testSessionTransactedModeReallyDoesDefaultToFalse() throws Exception { JmsAccessor accessor = new StubJmsAccessor(); assertFalse("The [sessionTransacted] property of JmsAccessor must default to " + @@ -45,6 +45,7 @@ public final class JmsAccessorTests extends TestCase { accessor.isSessionTransacted()); } + @Test public void testAcknowledgeModeReallyDoesDefaultToAutoAcknowledge() throws Exception { JmsAccessor accessor = new StubJmsAccessor(); assertEquals("The [sessionAcknowledgeMode] property of JmsAccessor must default to " + @@ -54,12 +55,9 @@ public final class JmsAccessorTests extends TestCase { accessor.getSessionAcknowledgeMode()); } + @Test(expected=IllegalArgumentException.class) public void testSetAcknowledgeModeNameChokesIfBadAckModeIsSupplied() throws Exception { - new AssertThrows(IllegalArgumentException.class) { - public void test() throws Exception { - new StubJmsAccessor().setSessionAcknowledgeModeName("Tally ho chaps!"); - } - }.runTest(); + new StubJmsAccessor().setSessionAcknowledgeModeName("Tally ho chaps!"); } diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/support/SimpleMessageConverter102Tests.java b/org.springframework.jms/src/test/java/org/springframework/jms/support/SimpleMessageConverter102Tests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/support/SimpleMessageConverter102Tests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/support/SimpleMessageConverter102Tests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/support/SimpleMessageConverterTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/support/SimpleMessageConverterTests.java similarity index 89% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/support/SimpleMessageConverterTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/support/SimpleMessageConverterTests.java index 8898893acd3..4e148cb0d03 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/jms/support/SimpleMessageConverterTests.java +++ b/org.springframework.jms/src/test/java/org/springframework/jms/support/SimpleMessageConverterTests.java @@ -16,19 +16,27 @@ package org.springframework.jms.support; -import junit.framework.TestCase; -import org.easymock.ArgumentsMatcher; -import org.easymock.MockControl; -import org.springframework.jms.support.converter.MessageConversionException; -import org.springframework.jms.support.converter.SimpleMessageConverter; -import org.springframework.test.AssertThrows; +import static org.junit.Assert.*; -import javax.jms.*; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Map; +import javax.jms.BytesMessage; +import javax.jms.JMSException; +import javax.jms.MapMessage; +import javax.jms.Message; +import javax.jms.ObjectMessage; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.easymock.ArgumentsMatcher; +import org.easymock.MockControl; +import org.junit.Test; +import org.springframework.jms.support.converter.MessageConversionException; +import org.springframework.jms.support.converter.SimpleMessageConverter; + /** * Unit tests for the {@link SimpleMessageConverter} class. * @@ -36,8 +44,9 @@ import java.util.Map; * @author Rick Evans * @since 18.09.2004 */ -public final class SimpleMessageConverterTests extends TestCase { +public final class SimpleMessageConverterTests { + @Test public void testStringConversion() throws JMSException { MockControl sessionControl = MockControl.createControl(Session.class); Session session = (Session) sessionControl.getMock(); @@ -61,6 +70,7 @@ public final class SimpleMessageConverterTests extends TestCase { messageControl.verify(); } + @Test public void testByteArrayConversion() throws JMSException { MockControl sessionControl = MockControl.createControl(Session.class); Session session = (Session) sessionControl.getMock(); @@ -99,6 +109,7 @@ public final class SimpleMessageConverterTests extends TestCase { messageControl.verify(); } + @Test public void testMapConversion() throws JMSException { MockControl sessionControl = MockControl.createControl(Session.class); @@ -134,6 +145,7 @@ public final class SimpleMessageConverterTests extends TestCase { messageControl.verify(); } + @Test public void testSerializableConversion() throws JMSException { MockControl sessionControl = MockControl.createControl(Session.class); Session session = (Session) sessionControl.getMock(); @@ -157,22 +169,17 @@ public final class SimpleMessageConverterTests extends TestCase { messageControl.verify(); } + @Test(expected=MessageConversionException.class) public void testToMessageThrowsExceptionIfGivenNullObjectToConvert() throws Exception { - new AssertThrows(MessageConversionException.class) { - public void test() throws Exception { - new SimpleMessageConverter().toMessage(null, null); - } - }.runTest(); + new SimpleMessageConverter().toMessage(null, null); } + @Test(expected=MessageConversionException.class) public void testToMessageThrowsExceptionIfGivenIncompatibleObjectToConvert() throws Exception { - new AssertThrows(MessageConversionException.class) { - public void test() throws Exception { - new SimpleMessageConverter().toMessage(new Object(), null); - } - }.runTest(); + new SimpleMessageConverter().toMessage(new Object(), null); } + @Test public void testToMessageSimplyReturnsMessageAsIsIfSuppliedWithMessage() throws JMSException { MockControl sessionControl = MockControl.createControl(Session.class); @@ -192,6 +199,7 @@ public final class SimpleMessageConverterTests extends TestCase { messageControl.verify(); } + @Test public void testFromMessageSimplyReturnsMessageAsIsIfSuppliedWithMessage() throws JMSException { MockControl messageControl = MockControl.createControl(Message.class); @@ -206,6 +214,7 @@ public final class SimpleMessageConverterTests extends TestCase { messageControl.verify(); } + @Test public void testMapConversionWhereMapHasNonStringTypesForKeys() throws JMSException { MockControl messageControl = MockControl.createControl(MapMessage.class); @@ -222,15 +231,15 @@ public final class SimpleMessageConverterTests extends TestCase { content.put(new Integer(1), "value1"); final SimpleMessageConverter converter = new SimpleMessageConverter(); - new AssertThrows(MessageConversionException.class) { - public void test() throws Exception { - converter.toMessage(content, session); - } - }.runTest(); + try { + converter.toMessage(content, session); + fail("expected MessageConversionException"); + } catch (MessageConversionException ex) { /* expected */ } sessionControl.verify(); } + @Test public void testMapConversionWhereMapHasNNullForKey() throws JMSException { MockControl messageControl = MockControl.createControl(MapMessage.class); @@ -247,11 +256,10 @@ public final class SimpleMessageConverterTests extends TestCase { content.put(null, "value1"); final SimpleMessageConverter converter = new SimpleMessageConverter(); - new AssertThrows(MessageConversionException.class) { - public void test() throws Exception { - converter.toMessage(content, session); - } - }.runTest(); + try { + converter.toMessage(content, session); + fail("expected MessageConversionException"); + } catch (MessageConversionException ex) { /* expected */ } sessionControl.verify(); } diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/support/destination/DynamicDestinationResolverTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/support/destination/DynamicDestinationResolverTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/support/destination/DynamicDestinationResolverTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/support/destination/DynamicDestinationResolverTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/support/destination/JmsDestinationAccessorTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/support/destination/JmsDestinationAccessorTests.java similarity index 64% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/support/destination/JmsDestinationAccessorTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/support/destination/JmsDestinationAccessorTests.java index 80a16af6005..ceada7828ef 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/jms/support/destination/JmsDestinationAccessorTests.java +++ b/org.springframework.jms/src/test/java/org/springframework/jms/support/destination/JmsDestinationAccessorTests.java @@ -16,35 +16,36 @@ package org.springframework.jms.support.destination; +import static org.easymock.EasyMock.*; +import static org.junit.Assert.*; + import javax.jms.ConnectionFactory; -import junit.framework.TestCase; -import org.easymock.MockControl; - -import org.springframework.test.AssertThrows; +import org.junit.Test; /** * @author Rick Evans + * @author Chris Beams */ -public class JmsDestinationAccessorTests extends TestCase { +public class JmsDestinationAccessorTests { + @Test public void testChokesIfDestinationResolverIsetToNullExplcitly() throws Exception { - MockControl mockConnectionFactory = MockControl.createControl(ConnectionFactory.class); - final ConnectionFactory connectionFactory = (ConnectionFactory) mockConnectionFactory.getMock(); - mockConnectionFactory.replay(); + ConnectionFactory connectionFactory = createMock(ConnectionFactory.class); + replay(connectionFactory); - new AssertThrows(IllegalArgumentException.class) { - public void test() throws Exception { - JmsDestinationAccessor accessor = new StubJmsDestinationAccessor(); - accessor.setConnectionFactory(connectionFactory); - accessor.setDestinationResolver(null); - accessor.afterPropertiesSet(); - } - }.runTest(); + try { + JmsDestinationAccessor accessor = new StubJmsDestinationAccessor(); + accessor.setConnectionFactory(connectionFactory); + accessor.setDestinationResolver(null); + accessor.afterPropertiesSet(); + fail("expected IllegalArgumentException"); + } catch (IllegalArgumentException ex) { /* expected */ } - mockConnectionFactory.verify(); + verify(connectionFactory); } + @Test public void testSessionTransactedModeReallyDoesDefaultToFalse() throws Exception { JmsDestinationAccessor accessor = new StubJmsDestinationAccessor(); assertFalse("The [pubSubDomain] property of JmsDestinationAccessor must default to " + diff --git a/org.springframework.testsuite/src/test/java/org/springframework/jms/support/destination/JndiDestinationResolverTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/support/destination/JndiDestinationResolverTests.java similarity index 93% rename from org.springframework.testsuite/src/test/java/org/springframework/jms/support/destination/JndiDestinationResolverTests.java rename to org.springframework.jms/src/test/java/org/springframework/jms/support/destination/JndiDestinationResolverTests.java index 8e1b3ee71fb..739dbe3d3c2 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/jms/support/destination/JndiDestinationResolverTests.java +++ b/org.springframework.jms/src/test/java/org/springframework/jms/support/destination/JndiDestinationResolverTests.java @@ -16,26 +16,28 @@ package org.springframework.jms.support.destination; -import junit.framework.TestCase; -import org.easymock.MockControl; - -import org.springframework.test.AssertThrows; -import org.springframework.jms.StubTopic; +import static org.junit.Assert.*; import javax.jms.Destination; import javax.jms.Session; import javax.naming.NamingException; +import org.easymock.MockControl; +import org.junit.Test; +import org.springframework.jms.StubTopic; + /** * @author Rick Evans + * @author Chris Beams */ -public class JndiDestinationResolverTests extends TestCase { +public class JndiDestinationResolverTests { private static final String DESTINATION_NAME = "foo"; private static final Destination DESTINATION = new StubTopic(); + @Test public void testHitsCacheSecondTimeThrough() throws Exception { MockControl mockSession = MockControl.createControl(Session.class); @@ -50,6 +52,7 @@ public class JndiDestinationResolverTests extends TestCase { mockSession.verify(); } + @Test public void testDoesNotUseCacheIfCachingIsTurnedOff() throws Exception { MockControl mockSession = MockControl.createControl(Session.class); @@ -72,6 +75,7 @@ public class JndiDestinationResolverTests extends TestCase { mockSession.verify(); } + @Test public void testDelegatesToFallbackIfNotResolvedInJndi() throws Exception { MockControl mockSession = MockControl.createControl(Session.class); Session session = (Session) mockSession.getMock(); @@ -99,6 +103,7 @@ public class JndiDestinationResolverTests extends TestCase { mockDestinationResolver.verify(); } + @Test public void testDoesNotDelegateToFallbackIfNotResolvedInJndi() throws Exception { MockControl mockSession = MockControl.createControl(Session.class); final Session session = (Session) mockSession.getMock(); @@ -115,11 +120,10 @@ public class JndiDestinationResolverTests extends TestCase { }; resolver.setDynamicDestinationResolver(dynamicResolver); - new AssertThrows(DestinationResolutionException.class) { - public void test() throws Exception { - resolver.resolveDestinationName(session, DESTINATION_NAME, true); - } - }.runTest(); + try { + resolver.resolveDestinationName(session, DESTINATION_NAME, true); + fail("expected DestinationResolutionException"); + } catch (DestinationResolutionException ex) { /* expected */ } mockSession.verify(); mockDestinationResolver.verify(); diff --git a/org.springframework.jms/src/test/java/org/springframework/transaction/CallCountingTransactionManager.java b/org.springframework.jms/src/test/java/org/springframework/transaction/CallCountingTransactionManager.java new file mode 100644 index 00000000000..d5c2531fbde --- /dev/null +++ b/org.springframework.jms/src/test/java/org/springframework/transaction/CallCountingTransactionManager.java @@ -0,0 +1,58 @@ +/* + * Copyright 2002-2007 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.transaction; + +import org.springframework.transaction.support.AbstractPlatformTransactionManager; +import org.springframework.transaction.support.DefaultTransactionStatus; + +/** + * @author Rod Johnson + * @author Juergen Hoeller + */ +public class CallCountingTransactionManager extends AbstractPlatformTransactionManager { + + public TransactionDefinition lastDefinition; + public int begun; + public int commits; + public int rollbacks; + public int inflight; + + protected Object doGetTransaction() { + return new Object(); + } + + protected void doBegin(Object transaction, TransactionDefinition definition) { + this.lastDefinition = definition; + ++begun; + ++inflight; + } + + protected void doCommit(DefaultTransactionStatus status) { + ++commits; + --inflight; + } + + protected void doRollback(DefaultTransactionStatus status) { + ++rollbacks; + --inflight; + } + + public void clear() { + begun = commits = rollbacks = inflight = 0; + } + +}