petclinic-uncached
Details
.springBeans 19(+1 -18)
diff --git a/.springBeans b/.springBeans
index 1dea402..91f4b0e 100644
--- a/.springBeans
+++ b/.springBeans
@@ -7,26 +7,9 @@
</configSuffixes>
<enableImports><![CDATA[false]]></enableImports>
<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>
+ <config>src/main/webapp/WEB-INF/mvc-view-config.xml</config>
</configs>
<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>
</beansProjectDescription>
pom.xml 39(+38 -1)
diff --git a/pom.xml b/pom.xml
index a6d7871..8e0c712 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
<packaging>war</packaging>
<version>1.0.0-SNAPSHOT</version>
<properties>
- <spring.version>3.2.0.RELEASE</spring.version>
+ <spring.version>3.2.1.RELEASE</spring.version>
<slf4j.version>1.7.0</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<hibernate.version>4.1.4.Final</hibernate.version>
@@ -51,6 +51,20 @@
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</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 -->
<dependency>
@@ -234,6 +248,13 @@
<version>1.1</version>
</dependency>
+ <!-- used for Spring MVC Test framework -->
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-all</artifactId>
+ <version>1.3</version>
+ </dependency>
+
</dependencies>
<build>
@@ -291,5 +312,21 @@
</executions>
</plugin>
</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>
</project>
\ No newline at end of file
diff --git a/src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewTest.java b/src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewTest.java
index 6c79082..7e81a8c 100644
--- a/src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewTest.java
+++ b/src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewTest.java
@@ -27,24 +27,67 @@ import java.util.Map;
import org.joda.time.DateTime;
import org.junit.Before;
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.PetType;
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.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 {
+ @Autowired
+ private WebApplicationContext webApplicationContext;
+
+ private MockMvc mockMvc;
+
+ @Before
+ public void setup() {
+ this.mockMvc = MockMvcBuilders.webAppContextSetup(this.webApplicationContext).build();
+ }
+
private VisitsAtomView visitView;
private Map<String, Object> model;
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
public void setUp() {
visitView = new VisitsAtomView();
@@ -55,14 +98,14 @@ public class VisitsAtomViewTest {
bello.setType(dog);
Visit belloVisit = new Visit();
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");
Pet wodan = new Pet();
wodan.setName("Wodan");
wodan.setType(dog);
Visit wodanVisit = new Visit();
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");
List<Visit> visits = new ArrayList<Visit>();
visits.add(belloVisit);
@@ -74,13 +117,14 @@ public class VisitsAtomViewTest {
}
+
@Test
public void buildFeedMetadata() {
visitView.buildFeedMetadata(model, feed, null);
assertNotNull("No id set", feed.getId());
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