package digitalwallet;
import com.urbanairship.digitalwallet.client.Pass;
import com.urbanairship.digitalwallet.client.PassTools;
import digitalwallet.mock.HttpArgumentCaptor;
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.MockitoAnnotations;
import org.testng.annotations.BeforeClass;
import java.io.IOException;
public class MockPassTest extends BaseMockTest {
@BeforeClass
protected void setup() {
MockitoAnnotations.initMocks(this);
PassTools.apiKey = "MOCK_KEY";
PassTools.client = httpClient;
}
@org.testng.annotations.Test
public void testListPasses() throws IOException {
HttpArgumentCaptor<HttpGet> captor = getGetCaptor();
Pass.listPasses(10, 1);
captor.verify("/v1/pass");
}
@org.testng.annotations.Test
public void testGetPass() throws IOException {
HttpArgumentCaptor<HttpGet> captor = getGetCaptor();
long id = randomId();
Pass.get(id);
captor.verify(getBaseUrl(id));
}
@org.testng.annotations.Test
public void testGetPassExternal() throws IOException {
HttpArgumentCaptor<HttpGet> captor = getGetCaptor();
String externalId = randomExternalId();
Pass.getPass(externalId);
captor.verify(getBaseUrl(externalId));
}
@org.testng.annotations.Test
public void testCreatePass() throws IOException {
HttpArgumentCaptor<HttpPost> captor = getPostCaptor();
long templateId = randomId();
Pass.create(templateId, randomFields());
captor.verify(getBaseUrl(templateId));
}
@org.testng.annotations.Test
public void testCreatePassExternal() throws IOException {
HttpArgumentCaptor<HttpPost> captor = getPostCaptor();
long templateId = randomId();
String externalId = randomExternalId();
Pass.create(templateId, externalId, randomFields());
captor.verify(getBaseUrl(templateId) + "/id/" + externalId);
}
@org.testng.annotations.Test
public void testCreatePassExternalX() throws IOException {
HttpArgumentCaptor<HttpPost> captor = getPostCaptor();
String templateExternalId = randomExternalId();
String externalId = randomExternalId();
Pass.create(templateExternalId, externalId, randomFields());
captor.verify(getBaseUrl(templateExternalId) + "/id/" + externalId);
}
@org.testng.annotations.Test
public void testUpdatePass() throws IOException {
HttpArgumentCaptor<HttpPut> captor = getPutCaptor();
long id = randomId();
Pass.update(id, randomFields());
captor.verify(getBaseUrl(id));
}
@org.testng.annotations.Test
public void testUpdatePassExternal() throws IOException {
HttpArgumentCaptor<HttpPut> captor = getPutCaptor();
String externalId = randomExternalId();
Pass.update(externalId, randomFields());
captor.verify(getBaseUrl(externalId));
}
@org.testng.annotations.Test
public void testDeletePass() throws IOException {
HttpArgumentCaptor<HttpDelete> captor = getDeleteCaptor();
long id = randomId();
Pass.delete(id);
captor.verify(getBaseUrl(id));
}
@org.testng.annotations.Test
public void testDeletePassExternal() throws IOException {
HttpArgumentCaptor<HttpDelete> captor = getDeleteCaptor();
String externalId = randomExternalId();
Pass.deleteX(externalId);
captor.verify(getBaseUrl(externalId));
}
@Override
protected String getBaseUrl() {
return "/v1/pass";
}
}