package digitalwallet; import com.urbanairship.digitalwallet.client.PassTools; import digitalwallet.mock.HttpArgumentCaptor; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPut; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.testng.annotations.BeforeClass; import java.io.IOException; import java.util.HashMap; import java.util.Map; public abstract class BaseMockTest { @Mock protected HttpClient httpClient; @BeforeClass protected void setup() { MockitoAnnotations.initMocks(this); PassTools.apiKey = "MOCK_KEY"; PassTools.client = httpClient; } protected HttpArgumentCaptor<HttpGet> getGetCaptor() throws IOException { return new HttpArgumentCaptor<HttpGet>(HttpGet.class, httpClient); } protected HttpArgumentCaptor<HttpPost> getPostCaptor() throws IOException { return new HttpArgumentCaptor<HttpPost>(HttpPost.class, httpClient); } protected HttpArgumentCaptor<HttpPut> getPutCaptor() throws IOException { return new HttpArgumentCaptor<HttpPut>(HttpPut.class, httpClient); } protected HttpArgumentCaptor<HttpDelete> getDeleteCaptor() throws IOException { return new HttpArgumentCaptor<HttpDelete>(HttpDelete.class, httpClient); } protected Map<String, Object> randomHeaders() { return new HashMap<String, Object>(); } protected Map<String, Object> randomFields() { return new HashMap<String, Object>(); } protected String randomType() { TemplateTypeEnum t = TemplateTypeEnum.getRandomAppleTemplateType(); return t.getJsonName(); } protected long randomId() { return (long)(Math.random() * 1000000); } protected String randomExternalId() { return TestHelper.randomString("External-"); } protected abstract String getBaseUrl(); protected String getBaseUrl(long id) { StringBuilder builder = new StringBuilder(getBaseUrl()); builder.append('/').append(id); return builder.toString(); } protected String getBaseUrl(String externalId) { StringBuilder builder = new StringBuilder(getBaseUrl()); builder.append("/id/").append(externalId); return builder.toString(); } }