initial commit for wiremock
This commit is contained in:
		
							parent
							
								
									29deacf3b9
								
							
						
					
					
						commit
						e8bbe6eba6
					
				| @ -1,173 +1,180 @@ | |||||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||||
|     <modelVersion>4.0.0</modelVersion> | 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||||
|     <groupId>com.baeldung</groupId> | 	<modelVersion>4.0.0</modelVersion> | ||||||
|     <artifactId>rest-testing</artifactId> | 	<groupId>com.baeldung</groupId> | ||||||
|     <version>0.1-SNAPSHOT</version> | 	<artifactId>rest-testing</artifactId> | ||||||
|  | 	<version>0.1-SNAPSHOT</version> | ||||||
| 
 | 
 | ||||||
|     <name>rest-testing</name> | 	<name>rest-testing</name> | ||||||
| 
 | 
 | ||||||
|     <dependencies> | 	<dependencies> | ||||||
| 
 | 
 | ||||||
|         <!-- utils --> | 		<!-- utils --> | ||||||
| 
 | 
 | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>com.google.guava</groupId> | 			<groupId>com.google.guava</groupId> | ||||||
|             <artifactId>guava</artifactId> | 			<artifactId>guava</artifactId> | ||||||
|             <version>${guava.version}</version> | 			<version>${guava.version}</version> | ||||||
|         </dependency> | 		</dependency> | ||||||
| 
 | 
 | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>commons-io</groupId> | 			<groupId>commons-io</groupId> | ||||||
|             <artifactId>commons-io</artifactId> | 			<artifactId>commons-io</artifactId> | ||||||
|             <version>2.4</version> | 			<version>2.4</version> | ||||||
|         </dependency> | 		</dependency> | ||||||
| 
 | 
 | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>org.apache.commons</groupId> | 			<groupId>org.apache.commons</groupId> | ||||||
|             <artifactId>commons-lang3</artifactId> | 			<artifactId>commons-lang3</artifactId> | ||||||
|             <version>${commons-lang3.version}</version> | 			<version>${commons-lang3.version}</version> | ||||||
|         </dependency> | 		</dependency> | ||||||
| 
 | 
 | ||||||
|         <!-- http client --> | 		<!-- http client --> | ||||||
| 
 | 
 | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>org.apache.httpcomponents</groupId> | 			<groupId>org.apache.httpcomponents</groupId> | ||||||
|             <artifactId>httpclient</artifactId> | 			<artifactId>httpclient</artifactId> | ||||||
|             <version>${httpclient.version}</version> | 			<version>${httpclient.version}</version> | ||||||
|         </dependency> | 		</dependency> | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>org.apache.httpcomponents</groupId> | 			<groupId>org.apache.httpcomponents</groupId> | ||||||
|             <artifactId>httpcore</artifactId> | 			<artifactId>httpcore</artifactId> | ||||||
|             <version>${httpcore.version}</version> | 			<version>${httpcore.version}</version> | ||||||
|         </dependency> | 		</dependency> | ||||||
| 
 | 
 | ||||||
|         <!-- marshalling --> | 		<!-- marshalling --> | ||||||
| 
 | 
 | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>com.fasterxml.jackson.core</groupId> | 			<groupId>com.fasterxml.jackson.core</groupId> | ||||||
|             <artifactId>jackson-databind</artifactId> | 			<artifactId>jackson-databind</artifactId> | ||||||
|             <version>${jackson.version}</version> | 			<version>${jackson.version}</version> | ||||||
|         </dependency> | 		</dependency> | ||||||
| 
 | 
 | ||||||
|         <!-- logging --> | 		<!-- logging --> | ||||||
| 
 | 
 | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>org.slf4j</groupId> | 			<groupId>org.slf4j</groupId> | ||||||
|             <artifactId>slf4j-api</artifactId> | 			<artifactId>slf4j-api</artifactId> | ||||||
|             <version>${org.slf4j.version}</version> | 			<version>${org.slf4j.version}</version> | ||||||
|         </dependency> | 		</dependency> | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>ch.qos.logback</groupId> | 			<groupId>ch.qos.logback</groupId> | ||||||
|             <artifactId>logback-classic</artifactId> | 			<artifactId>logback-classic</artifactId> | ||||||
|             <version>${logback.version}</version> | 			<version>${logback.version}</version> | ||||||
|             <!-- <scope>runtime</scope> --> | 			<!-- <scope>runtime</scope> --> | ||||||
|         </dependency> | 		</dependency> | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>org.slf4j</groupId> | 			<groupId>org.slf4j</groupId> | ||||||
|             <artifactId>jcl-over-slf4j</artifactId> | 			<artifactId>jcl-over-slf4j</artifactId> | ||||||
|             <version>${org.slf4j.version}</version> | 			<version>${org.slf4j.version}</version> | ||||||
|             <scope>runtime</scope> | 			<scope>runtime</scope> | ||||||
|         </dependency> | 		</dependency> | ||||||
|         <dependency> <!-- needed to bridge to slf4j for projects that use the log4j APIs directly --> | 		<dependency> <!-- needed to bridge to slf4j for projects that use the log4j APIs directly --> | ||||||
|             <groupId>org.slf4j</groupId> | 			<groupId>org.slf4j</groupId> | ||||||
|             <artifactId>log4j-over-slf4j</artifactId> | 			<artifactId>log4j-over-slf4j</artifactId> | ||||||
|             <version>${org.slf4j.version}</version> | 			<version>${org.slf4j.version}</version> | ||||||
|         </dependency> | 		</dependency> | ||||||
| 
 | 
 | ||||||
|         <!-- test scoped --> | 		<!-- test scoped --> | ||||||
| 
 | 
 | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>junit</groupId> | 			<groupId>junit</groupId> | ||||||
|             <artifactId>junit</artifactId> | 			<artifactId>junit</artifactId> | ||||||
|             <version>${junit.version}</version> | 			<version>${junit.version}</version> | ||||||
|             <scope>test</scope> | 			<scope>test</scope> | ||||||
|         </dependency> | 		</dependency> | ||||||
| 
 | 
 | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>org.hamcrest</groupId> | 			<groupId>org.hamcrest</groupId> | ||||||
|             <artifactId>hamcrest-core</artifactId> | 			<artifactId>hamcrest-core</artifactId> | ||||||
|             <version>${org.hamcrest.version}</version> | 			<version>${org.hamcrest.version}</version> | ||||||
|             <scope>test</scope> | 			<scope>test</scope> | ||||||
|         </dependency> | 		</dependency> | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>org.hamcrest</groupId> | 			<groupId>org.hamcrest</groupId> | ||||||
|             <artifactId>hamcrest-library</artifactId> | 			<artifactId>hamcrest-library</artifactId> | ||||||
|             <version>${org.hamcrest.version}</version> | 			<version>${org.hamcrest.version}</version> | ||||||
|             <scope>test</scope> | 			<scope>test</scope> | ||||||
|         </dependency> | 		</dependency> | ||||||
| 
 | 
 | ||||||
|         <dependency> | 		<dependency> | ||||||
|             <groupId>org.mockito</groupId> | 			<groupId>org.mockito</groupId> | ||||||
|             <artifactId>mockito-core</artifactId> | 			<artifactId>mockito-core</artifactId> | ||||||
|             <version>${mockito.version}</version> | 			<version>${mockito.version}</version> | ||||||
|             <scope>test</scope> | 			<scope>test</scope> | ||||||
|         </dependency> | 		</dependency> | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>com.github.tomakehurst</groupId> | ||||||
|  | 			<artifactId>wiremock</artifactId> | ||||||
|  | 			<version>1.58</version> | ||||||
|  | 			<scope>test</scope> | ||||||
|  | 		</dependency> | ||||||
| 
 | 
 | ||||||
|     </dependencies> | 	</dependencies> | ||||||
| 
 | 
 | ||||||
|     <build> | 	<build> | ||||||
|         <finalName>rest-testing</finalName> | 		<finalName>rest-testing</finalName> | ||||||
|         <resources> | 		<resources> | ||||||
|             <resource> | 			<resource> | ||||||
|                 <directory>src/main/resources</directory> | 				<directory>src/main/resources</directory> | ||||||
|                 <filtering>true</filtering> | 				<filtering>true</filtering> | ||||||
|             </resource> | 			</resource> | ||||||
|         </resources> | 		</resources> | ||||||
| 
 | 
 | ||||||
|         <plugins> | 		<plugins> | ||||||
| 
 | 
 | ||||||
|             <plugin> | 			<plugin> | ||||||
|                 <groupId>org.apache.maven.plugins</groupId> | 				<groupId>org.apache.maven.plugins</groupId> | ||||||
|                 <artifactId>maven-compiler-plugin</artifactId> | 				<artifactId>maven-compiler-plugin</artifactId> | ||||||
|                 <version>${maven-compiler-plugin.version}</version> | 				<version>${maven-compiler-plugin.version}</version> | ||||||
|                 <configuration> | 				<configuration> | ||||||
|                     <source>1.8</source> | 					<source>1.8</source> | ||||||
|                     <target>1.8</target> | 					<target>1.8</target> | ||||||
|                 </configuration> | 				</configuration> | ||||||
|             </plugin> | 			</plugin> | ||||||
| 
 | 
 | ||||||
|             <plugin> | 			<plugin> | ||||||
|                 <groupId>org.apache.maven.plugins</groupId> | 				<groupId>org.apache.maven.plugins</groupId> | ||||||
|                 <artifactId>maven-surefire-plugin</artifactId> | 				<artifactId>maven-surefire-plugin</artifactId> | ||||||
|                 <version>${maven-surefire-plugin.version}</version> | 				<version>${maven-surefire-plugin.version}</version> | ||||||
|             </plugin> | 			</plugin> | ||||||
| 
 | 
 | ||||||
|         </plugins> | 		</plugins> | ||||||
| 
 | 
 | ||||||
|     </build> | 	</build> | ||||||
| 
 | 
 | ||||||
|     <properties> | 	<properties> | ||||||
|         <!-- marshalling --> | 		<!-- marshalling --> | ||||||
|         <jackson.version>2.7.2</jackson.version> | 		<jackson.version>2.7.2</jackson.version> | ||||||
| 
 | 
 | ||||||
|         <!-- logging --> | 		<!-- logging --> | ||||||
|         <org.slf4j.version>1.7.13</org.slf4j.version> | 		<org.slf4j.version>1.7.13</org.slf4j.version> | ||||||
|         <logback.version>1.1.3</logback.version> | 		<logback.version>1.1.3</logback.version> | ||||||
| 
 | 
 | ||||||
|         <!-- various --> | 		<!-- various --> | ||||||
|         <hibernate-validator.version>5.1.3.Final</hibernate-validator.version> | 		<hibernate-validator.version>5.1.3.Final</hibernate-validator.version> | ||||||
| 
 | 
 | ||||||
|         <!-- util --> | 		<!-- util --> | ||||||
|         <guava.version>19.0</guava.version> | 		<guava.version>19.0</guava.version> | ||||||
|         <commons-lang3.version>3.4</commons-lang3.version> | 		<commons-lang3.version>3.4</commons-lang3.version> | ||||||
| 
 | 
 | ||||||
|         <!-- testing --> | 		<!-- testing --> | ||||||
|         <org.hamcrest.version>1.3</org.hamcrest.version> | 		<org.hamcrest.version>1.3</org.hamcrest.version> | ||||||
|         <junit.version>4.12</junit.version> | 		<junit.version>4.12</junit.version> | ||||||
|         <mockito.version>1.10.19</mockito.version> | 		<mockito.version>1.10.19</mockito.version> | ||||||
| 
 | 
 | ||||||
|         <httpcore.version>4.4.1</httpcore.version> | 		<httpcore.version>4.4.1</httpcore.version> | ||||||
|         <httpclient.version>4.5</httpclient.version> | 		<httpclient.version>4.5</httpclient.version> | ||||||
| 
 | 
 | ||||||
|         <rest-assured.version>2.9.0</rest-assured.version> | 		<rest-assured.version>2.9.0</rest-assured.version> | ||||||
| 
 | 
 | ||||||
|         <!-- maven plugins --> | 		<!-- maven plugins --> | ||||||
|         <maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version> | 		<maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version> | ||||||
|         <maven-war-plugin.version>2.6</maven-war-plugin.version> | 		<maven-war-plugin.version>2.6</maven-war-plugin.version> | ||||||
|         <maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version> | 		<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version> | ||||||
|         <maven-resources-plugin.version>2.7</maven-resources-plugin.version> | 		<maven-resources-plugin.version>2.7</maven-resources-plugin.version> | ||||||
|         <cargo-maven2-plugin.version>1.4.18</cargo-maven2-plugin.version> | 		<cargo-maven2-plugin.version>1.4.18</cargo-maven2-plugin.version> | ||||||
| 
 | 
 | ||||||
|     </properties> | 	</properties> | ||||||
| 
 | 
 | ||||||
| </project> | </project> | ||||||
| @ -0,0 +1,53 @@ | |||||||
|  | package com.baeldung.rest.wiremock.introduction; | ||||||
|  | 
 | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.configureFor; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.get; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.getRequestedFor; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.verify; | ||||||
|  | import static org.junit.Assert.assertEquals; | ||||||
|  | 
 | ||||||
|  | import java.io.IOException; | ||||||
|  | import java.io.InputStream; | ||||||
|  | import java.util.Scanner; | ||||||
|  | 
 | ||||||
|  | import org.apache.http.HttpResponse; | ||||||
|  | import org.apache.http.client.methods.HttpGet; | ||||||
|  | import org.apache.http.impl.client.CloseableHttpClient; | ||||||
|  | import org.apache.http.impl.client.HttpClients; | ||||||
|  | import org.junit.Rule; | ||||||
|  | import org.junit.Test; | ||||||
|  | 
 | ||||||
|  | import com.github.tomakehurst.wiremock.junit.WireMockRule; | ||||||
|  | 
 | ||||||
|  | public class JUnitManaged { | ||||||
|  |     @Rule | ||||||
|  |     public WireMockRule wireMockRule = new WireMockRule(); | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void givenJUnitManagedServer_whenStubbingURL_thenCorrect() throws IOException { | ||||||
|  |         configureFor("localhost", 8080); | ||||||
|  |         stubFor(get(urlPathMatching("/baeldung/.*")).willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json").withBody("\"testing-library\": \"WireMock\""))); | ||||||
|  | 
 | ||||||
|  |         CloseableHttpClient httpClient = HttpClients.createDefault(); | ||||||
|  |         HttpGet request = new HttpGet("http://localhost:8080/baeldung/wiremock"); | ||||||
|  |         HttpResponse httpResponse = httpClient.execute(request); | ||||||
|  |         String stringResponse = convertResponseToString(httpResponse); | ||||||
|  | 
 | ||||||
|  |         verify(getRequestedFor(urlEqualTo("/baeldung/wiremock"))); | ||||||
|  |         assertEquals(200, httpResponse.getStatusLine().getStatusCode()); | ||||||
|  |         assertEquals("application/json", httpResponse.getFirstHeader("Content-Type").getValue()); | ||||||
|  |         assertEquals("\"testing-library\": \"WireMock\"", stringResponse); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private String convertResponseToString(HttpResponse response) throws IOException { | ||||||
|  |         InputStream responseStream = response.getEntity().getContent(); | ||||||
|  |         Scanner scanner = new Scanner(responseStream, "UTF-8"); | ||||||
|  |         String stringResponse = scanner.useDelimiter("\\Z").next(); | ||||||
|  |         scanner.close(); | ||||||
|  |         return stringResponse; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,52 @@ | |||||||
|  | package com.baeldung.rest.wiremock.introduction; | ||||||
|  | 
 | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.configureFor; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.get; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.getRequestedFor; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; | ||||||
|  | import static com.github.tomakehurst.wiremock.client.WireMock.verify; | ||||||
|  | import static org.junit.Assert.assertEquals; | ||||||
|  | 
 | ||||||
|  | import java.io.IOException; | ||||||
|  | import java.io.InputStream; | ||||||
|  | import java.util.Scanner; | ||||||
|  | 
 | ||||||
|  | import org.apache.http.HttpResponse; | ||||||
|  | import org.apache.http.client.methods.HttpGet; | ||||||
|  | import org.apache.http.impl.client.CloseableHttpClient; | ||||||
|  | import org.apache.http.impl.client.HttpClients; | ||||||
|  | import org.junit.Test; | ||||||
|  | 
 | ||||||
|  | import com.github.tomakehurst.wiremock.WireMockServer; | ||||||
|  | 
 | ||||||
|  | public class ProgrammaticallyManaged { | ||||||
|  |     WireMockServer wireMockServer = new WireMockServer(); | ||||||
|  |     CloseableHttpClient httpClient = HttpClients.createDefault(); | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void givenProgrammaticallyManagedServer_whenUsingSimpleStubbing_thenCorrect() throws IOException { | ||||||
|  |         wireMockServer.start(); | ||||||
|  | 
 | ||||||
|  |         configureFor("localhost", 8080); | ||||||
|  |         stubFor(get(urlEqualTo("/baeldung")).willReturn(aResponse().withBody("Welcome to Baeldung!"))); | ||||||
|  | 
 | ||||||
|  |         HttpGet request = new HttpGet("http://localhost:8080/baeldung"); | ||||||
|  |         HttpResponse httpResponse = httpClient.execute(request); | ||||||
|  |         String stringResponse = convertResponseToString(httpResponse); | ||||||
|  | 
 | ||||||
|  |         verify(getRequestedFor(urlEqualTo("/baeldung"))); | ||||||
|  |         assertEquals("Welcome to Baeldung!", stringResponse); | ||||||
|  | 
 | ||||||
|  |         wireMockServer.stop(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private String convertResponseToString(HttpResponse response) throws IOException { | ||||||
|  |         InputStream responseStream = response.getEntity().getContent(); | ||||||
|  |         Scanner scanner = new Scanner(responseStream, "UTF-8"); | ||||||
|  |         String stringResponse = scanner.useDelimiter("\\Z").next(); | ||||||
|  |         scanner.close(); | ||||||
|  |         return stringResponse; | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user