use of com.google.api.gax.paging.Page in project google-cloud-java by GoogleCloudPlatform.
the class DnsBatchTest method testListChangeRequestsWithOptions.
@Test
public void testListChangeRequestsWithOptions() {
EasyMock.reset(batchMock);
Capture<RpcBatch.Callback<ChangesListResponse>> callback = Capture.newInstance();
Capture<Map<DnsRpc.Option, Object>> capturedOptions = Capture.newInstance();
batchMock.addListChangeRequests(EasyMock.eq(ZONE_NAME), EasyMock.capture(callback), EasyMock.capture(capturedOptions));
EasyMock.replay(batchMock);
DnsBatchResult<Page<ChangeRequest>> batchResult = dnsBatch.listChangeRequests(ZONE_NAME, CHANGE_LIST_OPTIONS);
assertNotNull(callback.getValue());
Integer size = (Integer) capturedOptions.getValue().get(CHANGE_LIST_OPTIONS[0].getRpcOption());
assertEquals(MAX_SIZE, size);
String selector = (String) capturedOptions.getValue().get(CHANGE_LIST_OPTIONS[1].getRpcOption());
assertEquals(PAGE_TOKEN, selector);
selector = (String) capturedOptions.getValue().get(CHANGE_LIST_OPTIONS[2].getRpcOption());
assertTrue(selector.contains(Dns.ChangeRequestField.STATUS.getSelector()));
assertTrue(selector.contains(Dns.ChangeRequestField.ID.getSelector()));
selector = (String) capturedOptions.getValue().get(CHANGE_LIST_OPTIONS[3].getRpcOption());
assertTrue(selector.contains(Dns.SortingOrder.ASCENDING.selector()));
// check the callback
ChangesListResponse response = new ChangesListResponse().setChanges(CHANGE_LIST).setNextPageToken(PAGE_TOKEN);
RpcBatch.Callback<ChangesListResponse> capturedCallback = callback.getValue();
EasyMock.verify(optionsMock);
EasyMock.reset(optionsMock);
EasyMock.expect(optionsMock.getService()).andReturn(dns);
EasyMock.replay(optionsMock);
capturedCallback.onSuccess(response);
Page<ChangeRequest> page = batchResult.get();
assertEquals(PAGE_TOKEN, page.getNextPageToken());
Iterator<ChangeRequest> iterator = page.getValues().iterator();
int resultSize = 0;
EasyMock.verify(dns);
EasyMock.reset(dns);
EasyMock.expect(dns.getOptions()).andReturn(optionsMock).times(CHANGE_LIST.size());
EasyMock.replay(dns);
while (iterator.hasNext()) {
assertEquals(CHANGE_REQUEST_COMPLETE.toPb(), iterator.next().toPb());
resultSize++;
}
assertEquals(CHANGE_LIST.size(), resultSize);
}
use of com.google.api.gax.paging.Page in project google-cloud-java by GoogleCloudPlatform.
the class DnsBatchTest method testListZonesWithOptions.
@Test
public void testListZonesWithOptions() {
EasyMock.reset(batchMock);
Capture<RpcBatch.Callback<ManagedZonesListResponse>> callback = Capture.newInstance();
Capture<Map<DnsRpc.Option, Object>> capturedOptions = Capture.newInstance();
batchMock.addListZones(EasyMock.capture(callback), EasyMock.capture(capturedOptions));
EasyMock.replay(batchMock);
DnsBatchResult<Page<Zone>> batchResult = dnsBatch.listZones(ZONE_LIST_OPTIONS);
assertNotNull(callback.getValue());
Integer size = (Integer) capturedOptions.getValue().get(ZONE_LIST_OPTIONS[0].getRpcOption());
assertEquals(MAX_SIZE, size);
String selector = (String) capturedOptions.getValue().get(ZONE_LIST_OPTIONS[1].getRpcOption());
assertEquals(PAGE_TOKEN, selector);
selector = (String) capturedOptions.getValue().get(ZONE_LIST_OPTIONS[2].getRpcOption());
assertTrue(selector.contains(Dns.ZoneField.DESCRIPTION.getSelector()));
assertTrue(selector.contains(Dns.ZoneField.NAME.getSelector()));
selector = (String) capturedOptions.getValue().get(ZONE_LIST_OPTIONS[3].getRpcOption());
assertEquals(DNS_NAME, selector);
// check the callback
ManagedZonesListResponse response = new ManagedZonesListResponse().setManagedZones(ZONE_LIST).setNextPageToken(PAGE_TOKEN);
RpcBatch.Callback<ManagedZonesListResponse> capturedCallback = callback.getValue();
EasyMock.verify(optionsMock);
EasyMock.reset(optionsMock);
EasyMock.expect(optionsMock.getService()).andReturn(dns).times(ZONE_LIST.size());
EasyMock.replay(optionsMock);
capturedCallback.onSuccess(response);
Page<Zone> page = batchResult.get();
assertEquals(PAGE_TOKEN, page.getNextPageToken());
Iterator<Zone> iterator = page.getValues().iterator();
int resultSize = 0;
EasyMock.verify(dns);
EasyMock.reset(dns);
EasyMock.expect(dns.getOptions()).andReturn(optionsMock).times(ZONE_LIST.size() + 1);
EasyMock.replay(dns);
Zone zoneInfoFunctional = new Zone(dns, new ZoneInfo.BuilderImpl(ZONE_INFO));
while (iterator.hasNext()) {
assertEquals(zoneInfoFunctional, iterator.next());
resultSize++;
}
assertEquals(ZONE_LIST.size(), resultSize);
}
use of com.google.api.gax.paging.Page in project google-cloud-java by GoogleCloudPlatform.
the class DnsBatchTest method testListRecordSetsWithOptions.
@Test
public void testListRecordSetsWithOptions() {
EasyMock.reset(batchMock);
Capture<RpcBatch.Callback<ResourceRecordSetsListResponse>> callback = Capture.newInstance();
Capture<Map<DnsRpc.Option, Object>> capturedOptions = Capture.newInstance();
batchMock.addListRecordSets(EasyMock.eq(ZONE_NAME), EasyMock.capture(callback), EasyMock.capture(capturedOptions));
EasyMock.replay(batchMock);
DnsBatchResult<Page<RecordSet>> batchResult = dnsBatch.listRecordSets(ZONE_NAME, RECORD_SET_LIST_OPTIONS);
assertNotNull(callback.getValue());
Integer size = (Integer) capturedOptions.getValue().get(RECORD_SET_LIST_OPTIONS[0].getRpcOption());
assertEquals(MAX_SIZE, size);
String selector = (String) capturedOptions.getValue().get(RECORD_SET_LIST_OPTIONS[1].getRpcOption());
assertEquals(PAGE_TOKEN, selector);
selector = (String) capturedOptions.getValue().get(RECORD_SET_LIST_OPTIONS[2].getRpcOption());
assertTrue(selector.contains(Dns.RecordSetField.NAME.getSelector()));
assertTrue(selector.contains(Dns.RecordSetField.TTL.getSelector()));
selector = (String) capturedOptions.getValue().get(RECORD_SET_LIST_OPTIONS[3].getRpcOption());
assertEquals(RECORD_SET_LIST_OPTIONS[3].getValue(), selector);
String type = (String) capturedOptions.getValue().get(RECORD_SET_LIST_OPTIONS[4].getRpcOption());
assertEquals(RECORD_SET_LIST_OPTIONS[4].getValue(), type);
RpcBatch.Callback<ResourceRecordSetsListResponse> capturedCallback = callback.getValue();
ResourceRecordSetsListResponse response = new ResourceRecordSetsListResponse().setRrsets(RECORD_SET_LIST).setNextPageToken(PAGE_TOKEN);
capturedCallback.onSuccess(response);
Page<RecordSet> page = batchResult.get();
assertEquals(PAGE_TOKEN, page.getNextPageToken());
Iterator<RecordSet> iterator = page.getValues().iterator();
int resultSize = 0;
while (iterator.hasNext()) {
assertEquals(RECORD_SET, iterator.next());
resultSize++;
}
assertEquals(RECORD_SET_LIST.size(), resultSize);
}
use of com.google.api.gax.paging.Page in project google-cloud-java by GoogleCloudPlatform.
the class ITDnsTest method testListDnsRecordSetsBatch.
@Test
public void testListDnsRecordSetsBatch() {
try {
Zone zone = DNS.create(ZONE1);
DnsBatch batch = DNS.batch();
DnsBatchResult<Page<RecordSet>> result = batch.listRecordSets(zone.getName());
batch.submit();
ImmutableList<RecordSet> recordSets = ImmutableList.copyOf(result.get().iterateAll());
assertEquals(2, recordSets.size());
ImmutableList<RecordSet.Type> defaultRecords = ImmutableList.of(RecordSet.Type.NS, RecordSet.Type.SOA);
for (RecordSet recordSet : recordSets) {
assertTrue(defaultRecords.contains(recordSet.getType()));
}
// field options
batch = DNS.batch();
DnsBatchResult<Page<RecordSet>> ttlResult = batch.listRecordSets(zone.getName(), Dns.RecordSetListOption.fields(RecordSetField.TTL));
DnsBatchResult<Page<RecordSet>> nameResult = batch.listRecordSets(zone.getName(), Dns.RecordSetListOption.fields(RecordSetField.NAME));
DnsBatchResult<Page<RecordSet>> recordsResult = batch.listRecordSets(zone.getName(), Dns.RecordSetListOption.fields(RecordSetField.DNS_RECORDS));
DnsBatchResult<Page<RecordSet>> pageSizeResult = batch.listRecordSets(zone.getName(), Dns.RecordSetListOption.fields(RecordSetField.TYPE), Dns.RecordSetListOption.pageSize(1));
batch.submit();
Iterator<RecordSet> recordSetIterator = ttlResult.get().iterateAll().iterator();
int counter = 0;
while (recordSetIterator.hasNext()) {
RecordSet recordSet = recordSetIterator.next();
assertEquals(recordSets.get(counter).getTtl(), recordSet.getTtl());
assertEquals(recordSets.get(counter).getName(), recordSet.getName());
assertEquals(recordSets.get(counter).getType(), recordSet.getType());
assertTrue(recordSet.getRecords().isEmpty());
counter++;
}
assertEquals(2, counter);
recordSetIterator = nameResult.get().iterateAll().iterator();
counter = 0;
while (recordSetIterator.hasNext()) {
RecordSet recordSet = recordSetIterator.next();
assertEquals(recordSets.get(counter).getName(), recordSet.getName());
assertEquals(recordSets.get(counter).getType(), recordSet.getType());
assertTrue(recordSet.getRecords().isEmpty());
assertNull(recordSet.getTtl());
counter++;
}
assertEquals(2, counter);
recordSetIterator = recordsResult.get().iterateAll().iterator();
counter = 0;
while (recordSetIterator.hasNext()) {
RecordSet recordSet = recordSetIterator.next();
assertEquals(recordSets.get(counter).getRecords(), recordSet.getRecords());
assertEquals(recordSets.get(counter).getName(), recordSet.getName());
assertEquals(recordSets.get(counter).getType(), recordSet.getType());
assertNull(recordSet.getTtl());
counter++;
}
assertEquals(2, counter);
// also test paging
recordSetIterator = pageSizeResult.get().iterateAll().iterator();
counter = 0;
while (recordSetIterator.hasNext()) {
RecordSet recordSet = recordSetIterator.next();
assertEquals(recordSets.get(counter).getType(), recordSet.getType());
assertEquals(recordSets.get(counter).getName(), recordSet.getName());
assertTrue(recordSet.getRecords().isEmpty());
assertNull(recordSet.getTtl());
counter++;
}
assertEquals(2, counter);
// test page size
Page<RecordSet> recordSetPage = pageSizeResult.get();
assertEquals(1, ImmutableList.copyOf(recordSetPage.getValues().iterator()).size());
// test name filter
ChangeRequest change = DNS.applyChangeRequest(ZONE1.getName(), CHANGE_ADD_ZONE1);
waitForChangeToComplete(ZONE1.getName(), change.getGeneratedId());
batch = DNS.batch();
result = batch.listRecordSets(ZONE1.getName(), Dns.RecordSetListOption.dnsName(A_RECORD_ZONE1.getName()));
batch.submit();
recordSetIterator = result.get().iterateAll().iterator();
counter = 0;
while (recordSetIterator.hasNext()) {
RecordSet recordSet = recordSetIterator.next();
assertTrue(ImmutableList.of(A_RECORD_ZONE1.getType(), AAAA_RECORD_ZONE1.getType()).contains(recordSet.getType()));
counter++;
}
assertEquals(2, counter);
// test type filter
batch = DNS.batch();
result = batch.listRecordSets(ZONE1.getName(), Dns.RecordSetListOption.dnsName(A_RECORD_ZONE1.getName()), Dns.RecordSetListOption.type(A_RECORD_ZONE1.getType()));
batch.submit();
recordSetIterator = result.get().iterateAll().iterator();
counter = 0;
while (recordSetIterator.hasNext()) {
RecordSet recordSet = recordSetIterator.next();
assertEquals(A_RECORD_ZONE1, recordSet);
counter++;
}
assertEquals(1, counter);
batch = DNS.batch();
DnsBatchResult<Page<RecordSet>> noNameError = batch.listRecordSets(ZONE1.getName(), Dns.RecordSetListOption.type(A_RECORD_ZONE1.getType()));
DnsBatchResult<Page<RecordSet>> zeroSizeError = batch.listRecordSets(ZONE1.getName(), Dns.RecordSetListOption.pageSize(0));
DnsBatchResult<Page<RecordSet>> negativeSizeError = batch.listRecordSets(ZONE1.getName(), Dns.RecordSetListOption.pageSize(-1));
batch.submit();
// check wrong arguments
try {
// name is not set
noNameError.get();
fail();
} catch (DnsException ex) {
// expected
assertEquals(400, ex.getCode());
assertFalse(ex.isRetryable());
}
try {
zeroSizeError.get();
fail();
} catch (DnsException ex) {
// expected
assertEquals(400, ex.getCode());
assertFalse(ex.isRetryable());
}
try {
negativeSizeError.get();
fail();
} catch (DnsException ex) {
// expected
assertEquals(400, ex.getCode());
assertFalse(ex.isRetryable());
}
waitForChangeToComplete(ZONE1.getName(), change.getGeneratedId());
} finally {
clear();
}
}
use of com.google.api.gax.paging.Page in project google-cloud-java by GoogleCloudPlatform.
the class ITDnsTest method testBatchCombined.
@Test
public void testBatchCombined() {
// the results are validated in the other test methods
try {
DNS.create(ZONE1);
DnsBatch batch = DNS.batch();
DnsBatchResult<Zone> zoneResult = batch.getZone(ZONE_NAME1);
DnsBatchResult<ChangeRequest> changeRequestResult = batch.getChangeRequest(ZONE_NAME1, "0");
DnsBatchResult<Page<RecordSet>> pageResult = batch.listRecordSets(ZONE_NAME1);
DnsBatchResult<ProjectInfo> projectResult = batch.getProject();
assertFalse(zoneResult.completed());
try {
zoneResult.get();
fail("this should be submitted first");
} catch (IllegalStateException ex) {
// expected
}
batch.submit();
assertNotNull(zoneResult.get().getCreationTimeMillis());
assertEquals(ZONE1.getDnsName(), zoneResult.get().getDnsName());
assertEquals(ZONE1.getDescription(), zoneResult.get().getDescription());
assertFalse(zoneResult.get().getNameServers().isEmpty());
// we did not set it
assertNull(zoneResult.get().getNameServerSet());
assertNotNull(zoneResult.get().getGeneratedId());
assertNotNull(projectResult.get().getQuota());
assertEquals(2, Iterables.size(pageResult.get().getValues()));
assertNotNull(changeRequestResult.get());
} finally {
DNS.delete(ZONE1.getName());
}
}
Aggregations