mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-16 04:35:49 +00:00
Spring MVC Test Framework and migration to Spring 3.2.1
- migrated to Spring 3.2.1 - added hamcrest to the POM so it can be used with the Spring MVC Test Framework - Started migrating a JUnit test to Spring MVC Test Framework (at this stage, it stills doesn't work. It could be because of a conflict with ContentNegotiatingViewResolver)
This commit is contained in:
parent
e36bff7e7f
commit
057015c14c
3 changed files with 87 additions and 23 deletions
19
.springBeans
19
.springBeans
|
@ -7,26 +7,9 @@
|
||||||
</configSuffixes>
|
</configSuffixes>
|
||||||
<enableImports><![CDATA[false]]></enableImports>
|
<enableImports><![CDATA[false]]></enableImports>
|
||||||
<configs>
|
<configs>
|
||||||
<config>src/main/webapp/WEB-INF/mvc-core-config.xml</config>
|
|
||||||
<config>src/main/webapp/WEB-INF/mvc-view-config.xml</config>
|
|
||||||
<config>src/main/resources/spring/dao-config.xml</config>
|
|
||||||
<config>src/main/resources/spring/datasource-config.xml</config>
|
<config>src/main/resources/spring/datasource-config.xml</config>
|
||||||
<config>src/main/resources/spring/tools-config.xml</config>
|
<config>src/main/webapp/WEB-INF/mvc-view-config.xml</config>
|
||||||
</configs>
|
</configs>
|
||||||
<configSets>
|
<configSets>
|
||||||
<configSet>
|
|
||||||
<name><![CDATA[config]]></name>
|
|
||||||
<allowBeanDefinitionOverriding>true</allowBeanDefinitionOverriding>
|
|
||||||
<incomplete>false</incomplete>
|
|
||||||
<configs>
|
|
||||||
<config>src/main/webapp/WEB-INF/mvc-core-config.xml</config>
|
|
||||||
<config>src/main/webapp/WEB-INF/mvc-view-config.xml</config>
|
|
||||||
<config>src/main/resources/spring/dao-config.xml</config>
|
|
||||||
<config>src/main/resources/spring/datasource-config.xml</config>
|
|
||||||
<config>src/main/resources/spring/tools-config.xml</config>
|
|
||||||
</configs>
|
|
||||||
<profiles>
|
|
||||||
</profiles>
|
|
||||||
</configSet>
|
|
||||||
</configSets>
|
</configSets>
|
||||||
</beansProjectDescription>
|
</beansProjectDescription>
|
||||||
|
|
39
pom.xml
39
pom.xml
|
@ -8,7 +8,7 @@
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
<version>1.0.0-SNAPSHOT</version>
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
<properties>
|
<properties>
|
||||||
<spring.version>3.2.0.RELEASE</spring.version>
|
<spring.version>3.2.1.RELEASE</spring.version>
|
||||||
<slf4j.version>1.7.0</slf4j.version>
|
<slf4j.version>1.7.0</slf4j.version>
|
||||||
<log4j.version>1.2.17</log4j.version>
|
<log4j.version>1.2.17</log4j.version>
|
||||||
<hibernate.version>4.1.4.Final</hibernate.version>
|
<hibernate.version>4.1.4.Final</hibernate.version>
|
||||||
|
@ -51,6 +51,20 @@
|
||||||
<artifactId>spring-webmvc</artifactId>
|
<artifactId>spring-webmvc</artifactId>
|
||||||
<version>${spring.version}</version>
|
<version>${spring.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- will be a transitive dependency from Spring 3.2.2 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-web</artifactId>
|
||||||
|
<version>${spring.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- added because this dependency is missing in Spring 3.2.1 (can be removed from Spring 3.2.2) -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-jdbc</artifactId>
|
||||||
|
<version>${spring.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- Logging -->
|
<!-- Logging -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -234,6 +248,13 @@
|
||||||
<version>1.1</version>
|
<version>1.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- used for Spring MVC Test framework -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hamcrest</groupId>
|
||||||
|
<artifactId>hamcrest-all</artifactId>
|
||||||
|
<version>1.3</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
|
@ -291,5 +312,21 @@
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
<testResources>
|
||||||
|
<testResource>
|
||||||
|
<directory>src/test/resources</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</testResource>
|
||||||
|
|
||||||
|
<testResource>
|
||||||
|
<directory>src/main/webapp/WEB-INF</directory>
|
||||||
|
|
||||||
|
<filtering>true</filtering>
|
||||||
|
|
||||||
|
<includes>
|
||||||
|
<include>**/mvc-*-config.xml</include>
|
||||||
|
</includes>
|
||||||
|
</testResource>
|
||||||
|
</testResources>
|
||||||
</build>
|
</build>
|
||||||
</project>
|
</project>
|
|
@ -27,24 +27,67 @@ import java.util.Map;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.samples.petclinic.model.Pet;
|
import org.springframework.samples.petclinic.model.Pet;
|
||||||
import org.springframework.samples.petclinic.model.PetType;
|
import org.springframework.samples.petclinic.model.PetType;
|
||||||
import org.springframework.samples.petclinic.model.Visit;
|
import org.springframework.samples.petclinic.model.Visit;
|
||||||
|
import org.springframework.test.context.ActiveProfiles;
|
||||||
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
import org.springframework.test.context.web.WebAppConfiguration;
|
||||||
|
import org.springframework.test.web.servlet.MockMvc;
|
||||||
|
import org.springframework.test.web.servlet.ResultActions;
|
||||||
|
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||||
|
|
||||||
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
|
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
|
||||||
|
import org.springframework.web.context.WebApplicationContext;
|
||||||
|
import static org.hamcrest.Matchers.containsString;
|
||||||
|
|
||||||
import com.sun.syndication.feed.atom.Entry;
|
import com.sun.syndication.feed.atom.Entry;
|
||||||
import com.sun.syndication.feed.atom.Feed;
|
import com.sun.syndication.feed.atom.Feed;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Arjen Poutsma
|
* @author Arjen Poutsma
|
||||||
|
* @author Michael Isvy
|
||||||
*/
|
*/
|
||||||
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
|
@WebAppConfiguration
|
||||||
|
// Spring configuration files that are inside WEB-INF folder can be referenced here because they've been
|
||||||
|
// added to the classpath inside the Maven pom.xml file (inside <build> <testResources> ... </testResources> </build>)
|
||||||
|
@ContextConfiguration({"classpath*:mvc-*-config.xml", "classpath*:spring/*-config.xml"})
|
||||||
|
@ActiveProfiles("jdbc")
|
||||||
public class VisitsAtomViewTest {
|
public class VisitsAtomViewTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private WebApplicationContext webApplicationContext;
|
||||||
|
|
||||||
|
private MockMvc mockMvc;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.webApplicationContext).build();
|
||||||
|
}
|
||||||
|
|
||||||
private VisitsAtomView visitView;
|
private VisitsAtomView visitView;
|
||||||
|
|
||||||
private Map<String, Object> model;
|
private Map<String, Object> model;
|
||||||
|
|
||||||
private Feed feed;
|
private Feed feed;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getVisits() throws Exception {
|
||||||
|
MediaType mediaType = MediaType.APPLICATION_ATOM_XML;
|
||||||
|
ResultActions actions = this.mockMvc.perform(get("/owners/7/pets/9/visits.atom").accept(mediaType));
|
||||||
|
actions.andExpect(status().isOk());
|
||||||
|
actions.andExpect(content().contentType("application/atom+xml"));
|
||||||
|
//actions.andExpect(content().xml("Pet ClinicService Visits"));
|
||||||
|
actions.andExpect(xpath("//*").string(containsString("Pet ClinicService Visits")));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
visitView = new VisitsAtomView();
|
visitView = new VisitsAtomView();
|
||||||
|
@ -55,14 +98,14 @@ public class VisitsAtomViewTest {
|
||||||
bello.setType(dog);
|
bello.setType(dog);
|
||||||
Visit belloVisit = new Visit();
|
Visit belloVisit = new Visit();
|
||||||
belloVisit.setPet(bello);
|
belloVisit.setPet(bello);
|
||||||
belloVisit.setDate(new DateTime(2009, 1, 1,1,1));
|
belloVisit.setDate(new DateTime(2009, 1, 1, 1, 1));
|
||||||
belloVisit.setDescription("Bello visit");
|
belloVisit.setDescription("Bello visit");
|
||||||
Pet wodan = new Pet();
|
Pet wodan = new Pet();
|
||||||
wodan.setName("Wodan");
|
wodan.setName("Wodan");
|
||||||
wodan.setType(dog);
|
wodan.setType(dog);
|
||||||
Visit wodanVisit = new Visit();
|
Visit wodanVisit = new Visit();
|
||||||
wodanVisit.setPet(wodan);
|
wodanVisit.setPet(wodan);
|
||||||
wodanVisit.setDate(new DateTime(2009, 1, 2,1,1));
|
wodanVisit.setDate(new DateTime(2009, 1, 2, 1, 1));
|
||||||
wodanVisit.setDescription("Wodan visit");
|
wodanVisit.setDescription("Wodan visit");
|
||||||
List<Visit> visits = new ArrayList<Visit>();
|
List<Visit> visits = new ArrayList<Visit>();
|
||||||
visits.add(belloVisit);
|
visits.add(belloVisit);
|
||||||
|
@ -74,13 +117,14 @@ public class VisitsAtomViewTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void buildFeedMetadata() {
|
public void buildFeedMetadata() {
|
||||||
visitView.buildFeedMetadata(model, feed, null);
|
visitView.buildFeedMetadata(model, feed, null);
|
||||||
|
|
||||||
assertNotNull("No id set", feed.getId());
|
assertNotNull("No id set", feed.getId());
|
||||||
assertNotNull("No title set", feed.getTitle());
|
assertNotNull("No title set", feed.getTitle());
|
||||||
assertEquals("Invalid update set", new DateTime(2009, 1, 2,1,1).toDate(), feed.getUpdated());
|
assertEquals("Invalid update set", new DateTime(2009, 1, 2, 1, 1).toDate(), feed.getUpdated());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in a new issue