-
Notifications
You must be signed in to change notification settings - Fork 26
Home
jandudek edited this page Nov 2, 2013
·
71 revisions
Welcome to Jadler, Java http mocking library.
If you need a simple way to create a stub http server in your integration tests and do some http communication mocking, look no further! Writing tests for http client applications can be as easy as:
@Test
public void getAccount() {
onRequest()
.havingMethodEqualTo("GET")
.havingURIEqualTo("/accounts/1")
.havingBody(isEmptyOrNullString())
.havingHeaderEqualTo("Accept", "application/json")
.respond()
.withTimeout(2, SECONDS)
.withStatus(200)
.withBody("{\\"account\\":{\\"id\\" : 1}}")
.withEncoding(Charset.forName("UTF-8"))
.withContentType("application/json; charset=UTF-8");
final AccountService service = new AccountServiceRestImpl("http", "localhost", port());
final Account account = service.getAccount(1);
assertThat(account, is(notNullValue()));
assertThat(account.getId(), is(1));
}
@Test
public void deleteAccount() {
onRequest()
.havingMethodEqualTo("DELETE")
.havingPathEqualTo("/accounts/1")
.respond()
.withStatus(204);
final AccountService service = new AccountServiceRestImpl("http", "localhost", port());
service.deleteAccount(1);
verifyThatRequest()
.havingMethodEqualTo("DELETE")
.havingPathEqualTo("/accounts/1")
.receivedOnce();
}
@Test
public void getFile() throws IOException{
initJadlerListeningOn(8081).that().respondsWithDefaultStatus(200);
String fileService = "http://localhost:8081/getExcelFile";
byte[] bytes = IOUtils.toByteArray(new FileInputStream(myExcelFile));
onRequest()
.havingPathEqualTo("/getExcelFile")
.respond()
.withBody(bytes)
.withContentType("applicatoin/vnd.ms-excel")
.withHeader("Content-Length", Integer.toString(bytes.length));
HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager());
GetMethod get = new GetMethod(new URL(fileService).toExternalForm());
int responseCode = client.executeMethod(get);
assertEquals(200, responseCode);
assertEquals(bytes.length, get.getResponseBodyAsString().getBytes().length);
}
-
Jadler Usage Tutorial (embedded to the
net.jadler.Jadler
class) - Complete Documentation
Jadler 1.1.0 is out! Special thanks to @benky and @lukas-krecan for their contributions and reviews!
Jadler 1.0.0 released! The first stable version is finally out! Special thanks to @benky, @liry and @lukas-krecan for their contributions and reviews!
Jadler 0.9.5 released! Special thanks to @benky, @liry and @jumarko for their contributions!
To add Jadler to your Java project just put the following dependency to the Maven pom.xml
file:
<dependency>
<groupId>net.jadler</groupId>
<artifactId>jadler-all</artifactId>
<version>1.1.0</version>
<scope>test</scope>
</dependency>