Skip to content
This repository has been archived by the owner on Sep 12, 2022. It is now read-only.

creates queue matcher dispatcher #18

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ The core API of this library is centered around the class `RequestMatcherRule`.
public class LocalTest {

@Rule
public final RequestMatcherRule serverRule = new LocalTestRequestMatcherRule();
public final RequestMatcherRule serverRule = new LocalTestRequestMatcherRule.Builder().build();

@Before
public void setUp() {
Expand Down Expand Up @@ -128,13 +128,13 @@ Because of these differences, there are two implementations of `RequestMatcherRu
``` java
// Local Test
@Rule
public final RequestMatcherRule server = new LocalTestRequestMatcherRule();
public final RequestMatcherRule server = new LocalTestRequestMatcherRule.Builder().build();

// or

// Instrumented Test
@Rule
public final RequestMatcherRule server = new InstrumentedTestRequestMatcherRule();
public final RequestMatcherRule server = new InstrumentedTestRequestMatcherRule.Builder().build();
```

The difference is that when we run an InstrumentedTest, we must pass the instrumentation context (and *NOT* the target context).
Expand Down
2 changes: 1 addition & 1 deletion requestmatcher/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ dependencies {
testCompile "com.squareup.okhttp3:mockwebserver:$okhttpVersion"
testCompile "com.squareup.okhttp3:okhttp:$okhttpVersion"
testCompile 'org.robolectric:robolectric:3.3.2'
testCompile 'org.mockito:mockito-all:1.10.19'
testCompile 'org.mockito:mockito-core:2.19.0'

androidTestCompile "com.squareup.okhttp3:mockwebserver:$okhttpVersion"
androidTestCompile("com.jayway.jsonpath:json-path-assert:$jsonPathAssert") {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package br.com.concretesolutions.requestmatcher.test;
package br.com.concretesolutions.requestmatcher.test.dispachers.map;

import android.support.test.runner.AndroidJUnit4;

Expand All @@ -8,10 +8,10 @@
import br.com.concretesolutions.requestmatcher.RequestMatcherRule;

@RunWith(AndroidJUnit4.class)
public class InstrumentedExceptionInStatementTest extends ExceptionInStatementTest {
public class InstrumentedExceptionInStatementTest extends MapExceptionInStatementTest {

@Override
protected RequestMatcherRule getRequestMatcherRule() {
return new InstrumentedTestRequestMatcherRule();
return new InstrumentedTestRequestMatcherRule.Builder().build();
}
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package br.com.concretesolutions.requestmatcher.test;
package br.com.concretesolutions.requestmatcher.test.dispachers.map;

import android.support.test.runner.AndroidJUnit4;

import org.junit.runner.RunWith;

import br.com.concretesolutions.requestmatcher.InstrumentedTestRequestMatcherRule;
import br.com.concretesolutions.requestmatcher.LocalTestRequestMatcherRule;
import br.com.concretesolutions.requestmatcher.RequestMatcherRule;
import br.com.concretesolutions.requestmatcher.test.ExceptionWithoutEnqueuesTest;

@RunWith(AndroidJUnit4.class)
public class InstrumentedExceptionWitouhtEnqueuesTest extends ExceptionWitouhtEnqueuesTest {
public class InstrumentedExceptionWithoutEnqueuesTest extends ExceptionWithoutEnqueuesTest {

@Override
protected RequestMatcherRule getRequestMatcherRule() {
return new InstrumentedTestRequestMatcherRule();
return new InstrumentedTestRequestMatcherRule.Builder().build();
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package br.com.concretesolutions.requestmatcher.test;
package br.com.concretesolutions.requestmatcher.test.dispachers.map;

import android.support.test.runner.AndroidJUnit4;

Expand All @@ -8,10 +8,10 @@
import br.com.concretesolutions.requestmatcher.RequestMatcherRule;

@RunWith(AndroidJUnit4.class)
public class InstrumentedRequestMatcherRuleTest extends RequestMatcherRuleTest {
public class InstrumentedRequestMatcherRuleTest extends MapRequestMatcherRuleTest {

@Override
protected RequestMatcherRule getRequestMatcherRule() {
return new InstrumentedTestRequestMatcherRule();
return new InstrumentedTestRequestMatcherRule.Builder().build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package br.com.concretesolutions.requestmatcher.test.dispachers.queue;

import android.support.test.runner.AndroidJUnit4;

import org.junit.runner.RunWith;

import br.com.concretesolutions.requestmatcher.InstrumentedTestRequestMatcherRule;
import br.com.concretesolutions.requestmatcher.QueueMatcherDispatcher;
import br.com.concretesolutions.requestmatcher.RequestMatcherRule;

@RunWith(AndroidJUnit4.class)
public class InstrumentedExceptionInStatementTest extends QueueExceptionInStatementTest {

@Override
protected RequestMatcherRule getRequestMatcherRule() {
return new InstrumentedTestRequestMatcherRule.Builder()
.setDispatcher(new QueueMatcherDispatcher())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package br.com.concretesolutions.requestmatcher.test.dispachers.queue;

import android.support.test.runner.AndroidJUnit4;

import org.junit.runner.RunWith;

import br.com.concretesolutions.requestmatcher.InstrumentedTestRequestMatcherRule;
import br.com.concretesolutions.requestmatcher.QueueMatcherDispatcher;
import br.com.concretesolutions.requestmatcher.RequestMatcherRule;
import br.com.concretesolutions.requestmatcher.test.ExceptionWithoutEnqueuesTest;

@RunWith(AndroidJUnit4.class)
public class InstrumentedExceptionWithoutEnqueuesTest extends ExceptionWithoutEnqueuesTest {

@Override
protected RequestMatcherRule getRequestMatcherRule() {
return new InstrumentedTestRequestMatcherRule.Builder()
.setDispatcher(new QueueMatcherDispatcher())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package br.com.concretesolutions.requestmatcher.test.dispachers.queue;

import android.support.test.runner.AndroidJUnit4;

import org.junit.runner.RunWith;

import br.com.concretesolutions.requestmatcher.InstrumentedTestRequestMatcherRule;
import br.com.concretesolutions.requestmatcher.QueueMatcherDispatcher;
import br.com.concretesolutions.requestmatcher.RequestMatcherRule;

@RunWith(AndroidJUnit4.class)
public class InstrumentedRequestMatcherRuleTest extends QueueRequestMatcherRuleTest {

@Override
protected RequestMatcherRule getRequestMatcherRule() {
return new InstrumentedTestRequestMatcherRule.Builder()
.setDispatcher(new QueueMatcherDispatcher())
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,45 +9,56 @@

/**
* A {@link RequestMatcherRule} for tests that run on devices or emulators.
*
* <p>
* For reference: https://github.com/concretesolutions/requestmatcher/wiki/Local-or-Instrumented-tests
*/
public class InstrumentedTestRequestMatcherRule extends RequestMatcherRule {

/**
* Creates a rule with a new instance of {@link MockWebServer}. This will by default look for
* fixtures in the "fixtures" folder.
*/
public InstrumentedTestRequestMatcherRule() {}

/**
* Creates a rule with a new instance of {@link MockWebServer}.
*
* @param fixturesRootFolder The root folder to look for fixtures. Defaults to "fixtures"
*/
public InstrumentedTestRequestMatcherRule(String fixturesRootFolder) {
super(fixturesRootFolder);
}
public static class Builder {
private MatcherDispatcher dispatcher = new MapMatcherDispatcher();
private MockWebServer server = new MockWebServer();
private String fixturesRootFolder = "fixtures";

/**
* Creates a rule with a new instance of {@link MockWebServer}. This will by default look for
* fixtures in the "fixtures" folder.
*/
public Builder() {
}

public Builder setDispatcher(MatcherDispatcher dispatcher) {
this.dispatcher = dispatcher;
return this;
}

/**
* Creates a rule with the given instance of {@link MockWebServer}. This will by default look
* for fixtures in the "fixtures" folder.
*
* @param server The {@link MockWebServer} instance
*/
public Builder setServer(MockWebServer server) {
this.server = server;
return this;
}

/**
* Creates a rule with a new instance of {@link MockWebServer}.
*
* @param fixturesRootFolder The root folder to look for fixtures. Defaults to "fixtures"
*/
public Builder setFixturesRootFolder(String fixturesRootFolder) {
this.fixturesRootFolder = fixturesRootFolder;
return this;
}

/**
* Creates a rule with the given instance of {@link MockWebServer}. This will by default look
* for fixtures in the "fixtures" folder.
*
* @param server The {@link MockWebServer} instance
*/
public InstrumentedTestRequestMatcherRule(MockWebServer server) {
super(server);
public RequestMatcherRule build() {
return new InstrumentedTestRequestMatcherRule(server, fixturesRootFolder, dispatcher);
}
}

/**
* Creates a rule with the given instance of {@link MockWebServer}. This will by default look
* for fixtures in the "fixtures" folder.
*
* @param server The {@link MockWebServer} instance
* @param fixturesRootFolder The root folder to look for fixtures. Defaults to "fixtures"
*/
public InstrumentedTestRequestMatcherRule(MockWebServer server, String fixturesRootFolder) {
super(server, fixturesRootFolder);
InstrumentedTestRequestMatcherRule(MockWebServer server, String fixturesRootFolder, MatcherDispatcher dispatcher) {
super(server, fixturesRootFolder, dispatcher);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,49 +7,61 @@

/**
* A {@link RequestMatcherRule} for tests that run on the JVM (locally).
*
* <p>
* For reference: https://github.com/concretesolutions/requestmatcher/wiki/Local-or-Instrumented-tests
*/
public class LocalTestRequestMatcherRule extends RequestMatcherRule {

/**
* Creates a rule with a new instance of {@link MockWebServer}. This will by default look for
* fixtures in the "fixtures" folder.
*/
public LocalTestRequestMatcherRule() {}

/**
* Creates a rule with a new instance of {@link MockWebServer}.
*
* @param fixturesRootFolder The root folder to look for fixtures. Defaults to "fixtures"
*/
public LocalTestRequestMatcherRule(String fixturesRootFolder) {
super(fixturesRootFolder);
}

/**
* Creates a rule with the given instance of {@link MockWebServer}. This will by default look
* for fixtures in the "fixtures" folder.
*
* @param server The {@link MockWebServer} instance
*/
public LocalTestRequestMatcherRule(MockWebServer server) {
super(server);
}

/**
* Creates a rule with the given instance of {@link MockWebServer}. This will by default look
* for fixtures in the "fixtures" folder.
*
* @param server The {@link MockWebServer} instance
* @param fixturesRootFolder The root folder to look for fixtures. Defaults to "fixtures"
*/
public LocalTestRequestMatcherRule(MockWebServer server, String fixturesRootFolder) {
super(server, fixturesRootFolder);
LocalTestRequestMatcherRule(MockWebServer server, String fixturesRootFolder, MatcherDispatcher dispatcher) {
super(server, fixturesRootFolder, dispatcher);
}

@Override
protected InputStream open(String path) throws IOException {
return LocalTestRequestMatcherRule.class.getClassLoader().getResourceAsStream(path);
}
}

public static class Builder {
private MatcherDispatcher dispatcher = new MapMatcherDispatcher();
private MockWebServer server = new MockWebServer();
private String fixturesRootFolder = "fixtures";

/**
* Creates a rule with a new instance of {@link MockWebServer}. This will by default look for
* fixtures in the "fixtures" folder.
*/
public Builder() {
}

public Builder setDispatcher(MatcherDispatcher dispatcher) {
this.dispatcher = dispatcher;
return this;
}

/**
* Creates a rule with the given instance of {@link MockWebServer}. This will by default look
* for fixtures in the "fixtures" folder.
*
* @param server The {@link MockWebServer} instance
*/
public Builder setServer(MockWebServer server) {
this.server = server;
return this;
}

/**
* Creates a rule with a new instance of {@link MockWebServer}.
*
* @param fixturesRootFolder The root folder to look for fixtures. Defaults to "fixtures"
*/
public Builder setFixturesRootFolder(String fixturesRootFolder) {
this.fixturesRootFolder = fixturesRootFolder;
return this;
}

public RequestMatcherRule build() {
return new LocalTestRequestMatcherRule(server, fixturesRootFolder, dispatcher);
}
}
}
Loading