Search in sources :

Example 1 with Page

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);
}
Also used : ChangesListResponse(com.google.api.services.dns.model.ChangesListResponse) Page(com.google.api.gax.paging.Page) RpcBatch(com.google.cloud.dns.spi.v1.RpcBatch) DnsRpc(com.google.cloud.dns.spi.v1.DnsRpc) Map(java.util.Map) Test(org.junit.Test)

Example 2 with Page

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);
}
Also used : ManagedZone(com.google.api.services.dns.model.ManagedZone) Page(com.google.api.gax.paging.Page) RpcBatch(com.google.cloud.dns.spi.v1.RpcBatch) ManagedZonesListResponse(com.google.api.services.dns.model.ManagedZonesListResponse) DnsRpc(com.google.cloud.dns.spi.v1.DnsRpc) Map(java.util.Map) Test(org.junit.Test)

Example 3 with Page

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);
}
Also used : ResourceRecordSetsListResponse(com.google.api.services.dns.model.ResourceRecordSetsListResponse) Page(com.google.api.gax.paging.Page) RpcBatch(com.google.cloud.dns.spi.v1.RpcBatch) DnsRpc(com.google.cloud.dns.spi.v1.DnsRpc) ResourceRecordSet(com.google.api.services.dns.model.ResourceRecordSet) Map(java.util.Map) Test(org.junit.Test)

Example 4 with Page

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();
    }
}
Also used : Zone(com.google.cloud.dns.Zone) Page(com.google.api.gax.paging.Page) ChangeRequest(com.google.cloud.dns.ChangeRequest) DnsException(com.google.cloud.dns.DnsException) DnsBatch(com.google.cloud.dns.DnsBatch) RecordSet(com.google.cloud.dns.RecordSet) Test(org.junit.Test)

Example 5 with Page

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());
    }
}
Also used : Zone(com.google.cloud.dns.Zone) ProjectInfo(com.google.cloud.dns.ProjectInfo) Page(com.google.api.gax.paging.Page) DnsBatch(com.google.cloud.dns.DnsBatch) ChangeRequest(com.google.cloud.dns.ChangeRequest) Test(org.junit.Test)

Aggregations

Page (com.google.api.gax.paging.Page)8 Test (org.junit.Test)8 DnsBatch (com.google.cloud.dns.DnsBatch)4 ChangeRequest (com.google.cloud.dns.ChangeRequest)3 DnsException (com.google.cloud.dns.DnsException)3 Zone (com.google.cloud.dns.Zone)3 DnsRpc (com.google.cloud.dns.spi.v1.DnsRpc)3 RpcBatch (com.google.cloud.dns.spi.v1.RpcBatch)3 Map (java.util.Map)3 ChangesListResponse (com.google.api.services.dns.model.ChangesListResponse)1 ManagedZone (com.google.api.services.dns.model.ManagedZone)1 ManagedZonesListResponse (com.google.api.services.dns.model.ManagedZonesListResponse)1 ResourceRecordSet (com.google.api.services.dns.model.ResourceRecordSet)1 ResourceRecordSetsListResponse (com.google.api.services.dns.model.ResourceRecordSetsListResponse)1 ProjectInfo (com.google.cloud.dns.ProjectInfo)1 RecordSet (com.google.cloud.dns.RecordSet)1 LogEntry (com.google.cloud.logging.LogEntry)1 Logging (com.google.cloud.logging.Logging)1 EntryListOption (com.google.cloud.logging.Logging.EntryListOption)1 LoggingOptions (com.google.cloud.logging.LoggingOptions)1