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"> | ||||
|     <modelVersion>4.0.0</modelVersion> | ||||
|     <groupId>com.baeldung</groupId> | ||||
|     <artifactId>rest-testing</artifactId> | ||||
|     <version>0.1-SNAPSHOT</version> | ||||
| <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"> | ||||
| 	<modelVersion>4.0.0</modelVersion> | ||||
| 	<groupId>com.baeldung</groupId> | ||||
| 	<artifactId>rest-testing</artifactId> | ||||
| 	<version>0.1-SNAPSHOT</version> | ||||
| 
 | ||||
|     <name>rest-testing</name> | ||||
| 	<name>rest-testing</name> | ||||
| 
 | ||||
|     <dependencies> | ||||
| 	<dependencies> | ||||
| 
 | ||||
|         <!-- utils --> | ||||
| 		<!-- utils --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>com.google.guava</groupId> | ||||
|             <artifactId>guava</artifactId> | ||||
|             <version>${guava.version}</version> | ||||
|         </dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>com.google.guava</groupId> | ||||
| 			<artifactId>guava</artifactId> | ||||
| 			<version>${guava.version}</version> | ||||
| 		</dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>commons-io</groupId> | ||||
|             <artifactId>commons-io</artifactId> | ||||
|             <version>2.4</version> | ||||
|         </dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>commons-io</groupId> | ||||
| 			<artifactId>commons-io</artifactId> | ||||
| 			<version>2.4</version> | ||||
| 		</dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.apache.commons</groupId> | ||||
|             <artifactId>commons-lang3</artifactId> | ||||
|             <version>${commons-lang3.version}</version> | ||||
|         </dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>org.apache.commons</groupId> | ||||
| 			<artifactId>commons-lang3</artifactId> | ||||
| 			<version>${commons-lang3.version}</version> | ||||
| 		</dependency> | ||||
| 
 | ||||
|         <!-- http client --> | ||||
| 		<!-- http client --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.apache.httpcomponents</groupId> | ||||
|             <artifactId>httpclient</artifactId> | ||||
|             <version>${httpclient.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.apache.httpcomponents</groupId> | ||||
|             <artifactId>httpcore</artifactId> | ||||
|             <version>${httpcore.version}</version> | ||||
|         </dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>org.apache.httpcomponents</groupId> | ||||
| 			<artifactId>httpclient</artifactId> | ||||
| 			<version>${httpclient.version}</version> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>org.apache.httpcomponents</groupId> | ||||
| 			<artifactId>httpcore</artifactId> | ||||
| 			<version>${httpcore.version}</version> | ||||
| 		</dependency> | ||||
| 
 | ||||
|         <!-- marshalling --> | ||||
| 		<!-- marshalling --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>com.fasterxml.jackson.core</groupId> | ||||
|             <artifactId>jackson-databind</artifactId> | ||||
|             <version>${jackson.version}</version> | ||||
|         </dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>com.fasterxml.jackson.core</groupId> | ||||
| 			<artifactId>jackson-databind</artifactId> | ||||
| 			<version>${jackson.version}</version> | ||||
| 		</dependency> | ||||
| 
 | ||||
|         <!-- logging --> | ||||
| 		<!-- logging --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.slf4j</groupId> | ||||
|             <artifactId>slf4j-api</artifactId> | ||||
|             <version>${org.slf4j.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>ch.qos.logback</groupId> | ||||
|             <artifactId>logback-classic</artifactId> | ||||
|             <version>${logback.version}</version> | ||||
|             <!-- <scope>runtime</scope> --> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.slf4j</groupId> | ||||
|             <artifactId>jcl-over-slf4j</artifactId> | ||||
|             <version>${org.slf4j.version}</version> | ||||
|             <scope>runtime</scope> | ||||
|         </dependency> | ||||
|         <dependency> <!-- needed to bridge to slf4j for projects that use the log4j APIs directly --> | ||||
|             <groupId>org.slf4j</groupId> | ||||
|             <artifactId>log4j-over-slf4j</artifactId> | ||||
|             <version>${org.slf4j.version}</version> | ||||
|         </dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>org.slf4j</groupId> | ||||
| 			<artifactId>slf4j-api</artifactId> | ||||
| 			<version>${org.slf4j.version}</version> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>ch.qos.logback</groupId> | ||||
| 			<artifactId>logback-classic</artifactId> | ||||
| 			<version>${logback.version}</version> | ||||
| 			<!-- <scope>runtime</scope> --> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>org.slf4j</groupId> | ||||
| 			<artifactId>jcl-over-slf4j</artifactId> | ||||
| 			<version>${org.slf4j.version}</version> | ||||
| 			<scope>runtime</scope> | ||||
| 		</dependency> | ||||
| 		<dependency> <!-- needed to bridge to slf4j for projects that use the log4j APIs directly --> | ||||
| 			<groupId>org.slf4j</groupId> | ||||
| 			<artifactId>log4j-over-slf4j</artifactId> | ||||
| 			<version>${org.slf4j.version}</version> | ||||
| 		</dependency> | ||||
| 
 | ||||
|         <!-- test scoped --> | ||||
| 		<!-- test scoped --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>junit</groupId> | ||||
|             <artifactId>junit</artifactId> | ||||
|             <version>${junit.version}</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>junit</groupId> | ||||
| 			<artifactId>junit</artifactId> | ||||
| 			<version>${junit.version}</version> | ||||
| 			<scope>test</scope> | ||||
| 		</dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.hamcrest</groupId> | ||||
|             <artifactId>hamcrest-core</artifactId> | ||||
|             <version>${org.hamcrest.version}</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.hamcrest</groupId> | ||||
|             <artifactId>hamcrest-library</artifactId> | ||||
|             <version>${org.hamcrest.version}</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>org.hamcrest</groupId> | ||||
| 			<artifactId>hamcrest-core</artifactId> | ||||
| 			<version>${org.hamcrest.version}</version> | ||||
| 			<scope>test</scope> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>org.hamcrest</groupId> | ||||
| 			<artifactId>hamcrest-library</artifactId> | ||||
| 			<version>${org.hamcrest.version}</version> | ||||
| 			<scope>test</scope> | ||||
| 		</dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.mockito</groupId> | ||||
|             <artifactId>mockito-core</artifactId> | ||||
|             <version>${mockito.version}</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>org.mockito</groupId> | ||||
| 			<artifactId>mockito-core</artifactId> | ||||
| 			<version>${mockito.version}</version> | ||||
| 			<scope>test</scope> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>com.github.tomakehurst</groupId> | ||||
| 			<artifactId>wiremock</artifactId> | ||||
| 			<version>1.58</version> | ||||
| 			<scope>test</scope> | ||||
| 		</dependency> | ||||
| 
 | ||||
|     </dependencies> | ||||
| 	</dependencies> | ||||
| 
 | ||||
|     <build> | ||||
|         <finalName>rest-testing</finalName> | ||||
|         <resources> | ||||
|             <resource> | ||||
|                 <directory>src/main/resources</directory> | ||||
|                 <filtering>true</filtering> | ||||
|             </resource> | ||||
|         </resources> | ||||
| 	<build> | ||||
| 		<finalName>rest-testing</finalName> | ||||
| 		<resources> | ||||
| 			<resource> | ||||
| 				<directory>src/main/resources</directory> | ||||
| 				<filtering>true</filtering> | ||||
| 			</resource> | ||||
| 		</resources> | ||||
| 
 | ||||
|         <plugins> | ||||
| 		<plugins> | ||||
| 
 | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-compiler-plugin</artifactId> | ||||
|                 <version>${maven-compiler-plugin.version}</version> | ||||
|                 <configuration> | ||||
|                     <source>1.8</source> | ||||
|                     <target>1.8</target> | ||||
|                 </configuration> | ||||
|             </plugin> | ||||
| 			<plugin> | ||||
| 				<groupId>org.apache.maven.plugins</groupId> | ||||
| 				<artifactId>maven-compiler-plugin</artifactId> | ||||
| 				<version>${maven-compiler-plugin.version}</version> | ||||
| 				<configuration> | ||||
| 					<source>1.8</source> | ||||
| 					<target>1.8</target> | ||||
| 				</configuration> | ||||
| 			</plugin> | ||||
| 
 | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-surefire-plugin</artifactId> | ||||
|                 <version>${maven-surefire-plugin.version}</version> | ||||
|             </plugin> | ||||
| 			<plugin> | ||||
| 				<groupId>org.apache.maven.plugins</groupId> | ||||
| 				<artifactId>maven-surefire-plugin</artifactId> | ||||
| 				<version>${maven-surefire-plugin.version}</version> | ||||
| 			</plugin> | ||||
| 
 | ||||
|         </plugins> | ||||
| 		</plugins> | ||||
| 
 | ||||
|     </build> | ||||
| 	</build> | ||||
| 
 | ||||
|     <properties> | ||||
|         <!-- marshalling --> | ||||
|         <jackson.version>2.7.2</jackson.version> | ||||
| 	<properties> | ||||
| 		<!-- marshalling --> | ||||
| 		<jackson.version>2.7.2</jackson.version> | ||||
| 
 | ||||
|         <!-- logging --> | ||||
|         <org.slf4j.version>1.7.13</org.slf4j.version> | ||||
|         <logback.version>1.1.3</logback.version> | ||||
| 		<!-- logging --> | ||||
| 		<org.slf4j.version>1.7.13</org.slf4j.version> | ||||
| 		<logback.version>1.1.3</logback.version> | ||||
| 
 | ||||
|         <!-- various --> | ||||
|         <hibernate-validator.version>5.1.3.Final</hibernate-validator.version> | ||||
| 		<!-- various --> | ||||
| 		<hibernate-validator.version>5.1.3.Final</hibernate-validator.version> | ||||
| 
 | ||||
|         <!-- util --> | ||||
|         <guava.version>19.0</guava.version> | ||||
|         <commons-lang3.version>3.4</commons-lang3.version> | ||||
| 		<!-- util --> | ||||
| 		<guava.version>19.0</guava.version> | ||||
| 		<commons-lang3.version>3.4</commons-lang3.version> | ||||
| 
 | ||||
|         <!-- testing --> | ||||
|         <org.hamcrest.version>1.3</org.hamcrest.version> | ||||
|         <junit.version>4.12</junit.version> | ||||
|         <mockito.version>1.10.19</mockito.version> | ||||
| 		<!-- testing --> | ||||
| 		<org.hamcrest.version>1.3</org.hamcrest.version> | ||||
| 		<junit.version>4.12</junit.version> | ||||
| 		<mockito.version>1.10.19</mockito.version> | ||||
| 
 | ||||
|         <httpcore.version>4.4.1</httpcore.version> | ||||
|         <httpclient.version>4.5</httpclient.version> | ||||
| 		<httpcore.version>4.4.1</httpcore.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-compiler-plugin.version>3.5.1</maven-compiler-plugin.version> | ||||
|         <maven-war-plugin.version>2.6</maven-war-plugin.version> | ||||
|         <maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version> | ||||
|         <maven-resources-plugin.version>2.7</maven-resources-plugin.version> | ||||
|         <cargo-maven2-plugin.version>1.4.18</cargo-maven2-plugin.version> | ||||
| 		<!-- maven plugins --> | ||||
| 		<maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version> | ||||
| 		<maven-war-plugin.version>2.6</maven-war-plugin.version> | ||||
| 		<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version> | ||||
| 		<maven-resources-plugin.version>2.7</maven-resources-plugin.version> | ||||
| 		<cargo-maven2-plugin.version>1.4.18</cargo-maven2-plugin.version> | ||||
| 
 | ||||
|     </properties> | ||||
| 	</properties> | ||||
| 
 | ||||
| </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