/** * Returns an {@code AddressInfo} object for the provided region identity and name. The object * corresponds to a region address. */ public static AddressInfo of(RegionId regionId, String name) { return of(RegionAddressId.of(regionId, name)); }
@Test public void testToPbAndFromPb() { compareAddressInfo(INSTANCE_ADDRESS_INFO, AddressInfo.fromPb(INSTANCE_ADDRESS_INFO.toPb())); compareAddressInfo( REGION_FORWARDING_ADDRESS_INFO, AddressInfo.fromPb(REGION_FORWARDING_ADDRESS_INFO.toPb())); compareAddressInfo( GLOBAL_FORWARDING_ADDRESS_INFO, AddressInfo.fromPb(GLOBAL_FORWARDING_ADDRESS_INFO.toPb())); AddressInfo addressInfo = AddressInfo.newBuilder(GLOBAL_ADDRESS_ID).build(); compareAddressInfo(addressInfo, AddressInfo.fromPb(addressInfo.toPb())); }
private void compareAddressInfo(AddressInfo expected, AddressInfo value) { assertEquals(expected, value); assertEquals(expected.getAddress(), value.getAddress()); assertEquals(expected.getCreationTimestamp(), value.getCreationTimestamp()); assertEquals(expected.getDescription(), value.getDescription()); assertEquals(expected.getGeneratedId(), value.getGeneratedId()); assertEquals(expected.getAddressId(), value.getAddressId()); assertEquals(expected.getUsage(), value.getUsage()); assertEquals(expected.getStatus(), value.getStatus()); assertEquals(expected.hashCode(), value.hashCode()); } }
AddressInfo setProjectId(String projectId) { if (getAddressId().getProject() != null) { return this; } return toBuilder().setAddressId(addressId.setProjectId(projectId)).build(); }
@Override public Address apply(AddressInfo addressInfo) { return addressInfo.toPb(); } };
@Test public void testCreateGlobalAddress() { EasyMock.expect(computeRpcMock.createGlobalAddress(GLOBAL_ADDRESS.toPb(), EMPTY_RPC_OPTIONS)) .andReturn(globalOperation.toPb()); EasyMock.replay(computeRpcMock); compute = options.getService(); AddressId incompleteId = GlobalAddressId.of("address"); Operation operation = compute.create(GLOBAL_ADDRESS.toBuilder().setAddressId(incompleteId).build()); assertEquals(globalOperation, operation); }
@Test public void testToBuilderIncomplete() { AddressInfo addressInfo = AddressInfo.newBuilder(GLOBAL_ADDRESS_ID).build(); assertEquals(addressInfo, addressInfo.toBuilder().build()); addressInfo = AddressInfo.newBuilder(REGION_ADDRESS_ID).build(); assertEquals(addressInfo, addressInfo.toBuilder().build()); }
@Test public void testToBuilder() { compareAddressInfo(INSTANCE_ADDRESS_INFO, INSTANCE_ADDRESS_INFO.toBuilder().build()); AddressInfo addressInfo = INSTANCE_ADDRESS_INFO .toBuilder() .setAddress("192.168.1.2") .setDescription("description2") .build(); assertEquals("description2", addressInfo.getDescription()); assertEquals("192.168.1.2", addressInfo.getAddress()); addressInfo = addressInfo.toBuilder().setAddress("192.168.1.1").setDescription("description").build(); compareAddressInfo(INSTANCE_ADDRESS_INFO, addressInfo); }
@Test public void testSetProjectId() { AddressInfo addressInfo = GLOBAL_FORWARDING_ADDRESS_INFO .toBuilder() .setAddressId(GlobalAddressId.of(GLOBAL_ADDRESS_ID.getAddress())) .build(); compareAddressInfo(GLOBAL_FORWARDING_ADDRESS_INFO, addressInfo.setProjectId("project")); }
@Override public Operation create(final AddressInfo address, OperationOption... options) { final com.google.api.services.compute.model.Address addressPb = address.setProjectId(getOptions().getProjectId()).toPb(); final Map<ComputeRpc.Option, ?> optionsMap = optionMap(options); try {
@Override public com.google.api.services.compute.model.Operation call() { switch (address.getAddressId().getType()) { case REGION: RegionAddressId regionAddressId = address.getAddressId(); return computeRpc.createRegionAddress( regionAddressId.getRegion(), addressPb, optionsMap); case GLOBAL: return computeRpc.createGlobalAddress(addressPb, optionsMap); default: throw new IllegalArgumentException("Unexpected address identity type"); } } },
@Override public AddressInfo apply(Address pb) { return AddressInfo.fromPb(pb); } };
@Override public final int hashCode() { return Objects.hash(super.hashCode(), options); }
/** Returns an {@code AddressInfo} object for the provided identity. */ public static AddressInfo of(AddressId addressId) { return newBuilder(addressId).build(); }
@Override public AddressInfo build() { return new AddressInfo(this); } }
@Test public void testCreateRegionAddress() { EasyMock.expect( computeRpcMock.createRegionAddress( REGION_ADDRESS_ID.getRegion(), REGION_ADDRESS.toPb(), EMPTY_RPC_OPTIONS)) .andReturn(regionOperation.toPb()); EasyMock.replay(computeRpcMock); compute = options.getService(); AddressId incompleteId = RegionAddressId.of("region", "address"); Operation operation = compute.create(REGION_ADDRESS.toBuilder().setAddressId(incompleteId).build()); assertEquals(regionOperation, operation); }
Address toPb() { Address addressPb = usage != null ? usage.toPb() : new Address(); addressPb.setAddress(address); if (creationTimestamp != null) { addressPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); } addressPb.setDescription(description); if (generatedId != null) { addressPb.setId(new BigInteger(generatedId)); } addressPb.setName(addressId.getAddress()); if (addressId.getType() == AddressId.Type.REGION) { addressPb.setRegion(this.<RegionAddressId>getAddressId().getRegionId().getSelfLink()); } if (status != null) { addressPb.setStatus(status.name()); } addressPb.setSelfLink(addressId.getSelfLink()); return addressPb; }
@Test public void testOf() { AddressInfo addressInfo = AddressInfo.of("address"); assertEquals(GlobalAddressId.of("address"), addressInfo.getAddressId()); assertNull(addressInfo.getAddress()); assertNull(addressInfo.getCreationTimestamp()); assertNull(addressInfo.getDescription()); assertNull(addressInfo.getGeneratedId()); assertNull(addressInfo.getStatus()); assertNull(addressInfo.getUsage()); addressInfo = AddressInfo.of(GLOBAL_ADDRESS_ID); assertEquals(GLOBAL_ADDRESS_ID, addressInfo.getAddressId()); assertNull(addressInfo.getAddress()); assertNull(addressInfo.getCreationTimestamp()); assertNull(addressInfo.getDescription()); assertNull(addressInfo.getGeneratedId()); assertNull(addressInfo.getStatus()); assertNull(addressInfo.getUsage()); addressInfo = AddressInfo.of("region", "address"); assertEquals(RegionAddressId.of("region", "address"), addressInfo.getAddressId()); assertNull(addressInfo.getAddress()); assertNull(addressInfo.getCreationTimestamp()); assertNull(addressInfo.getDescription()); assertNull(addressInfo.getGeneratedId()); assertNull(addressInfo.getStatus()); assertNull(addressInfo.getUsage()); addressInfo = AddressInfo.of(RegionId.of("region"), "address"); assertEquals(RegionAddressId.of("region", "address"), addressInfo.getAddressId()); assertNull(addressInfo.getAddress()); assertNull(addressInfo.getCreationTimestamp());
/** * Returns an {@code AddressInfo} object for the provided region and address names. The object * corresponds to a region address. */ public static AddressInfo of(String region, String name) { return of(RegionAddressId.of(region, name)); }