Merge "Add conversion util methods for LinkAddress" into main
This commit is contained in:
commit
41f97eedb2
2 changed files with 54 additions and 0 deletions
|
|
@ -19,8 +19,11 @@ import static java.util.Objects.requireNonNull;
|
|||
|
||||
import android.net.EthernetConfiguration;
|
||||
import android.net.EthernetConfiguration.MeteredOverride;
|
||||
import android.net.InetAddresses;
|
||||
import android.net.LinkAddress;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.server.network.configstore.proto.NetworkConfigStoreProto.LinkAddressProto;
|
||||
import com.android.server.network.configstore.proto.NetworkConfigStoreProto.MeteredOverrideProto;
|
||||
|
||||
/**
|
||||
|
|
@ -69,4 +72,28 @@ public class ProtoConfigUtils {
|
|||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts an {@link LinkAddress} object to a corresponding {@link LinkAddressProto} object.
|
||||
*/
|
||||
public static LinkAddressProto convertLinkAddressToProto(LinkAddress linkAddress) {
|
||||
requireNonNull(linkAddress, "LinkAddress must not be null");
|
||||
return LinkAddressProto.newBuilder()
|
||||
.setAddress(linkAddress.getAddress().getHostAddress())
|
||||
.setPrefixLength(linkAddress.getPrefixLength())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts an {@link LinkAddressProto} object to a corresponding value of {@link LinkAddress}
|
||||
* type.
|
||||
*
|
||||
* @throws IllegalArgumentException if the address string in the proto is not a valid IP
|
||||
* address.
|
||||
*/
|
||||
public static LinkAddress convertLinkAddressFromProto(LinkAddressProto linkAddress) {
|
||||
requireNonNull(linkAddress, "LinkAddressProto must not be null");
|
||||
return new LinkAddress(InetAddresses.parseNumericAddress(linkAddress.getAddress()),
|
||||
linkAddress.getPrefixLength());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,8 +19,10 @@ package com.android.server.net;
|
|||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import android.net.EthernetConfiguration;
|
||||
import android.net.LinkAddress;
|
||||
import android.os.Build;
|
||||
|
||||
import com.android.server.network.configstore.proto.NetworkConfigStoreProto.LinkAddressProto;
|
||||
import com.android.server.network.configstore.proto.NetworkConfigStoreProto.MeteredOverrideProto;
|
||||
import com.android.testutils.DevSdkIgnoreRule;
|
||||
import com.android.testutils.DevSdkIgnoreRunner;
|
||||
|
|
@ -34,6 +36,10 @@ import org.junit.runner.RunWith;
|
|||
@RunWith(DevSdkIgnoreRunner.class)
|
||||
@DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.S_V2)
|
||||
public class ProtoConfigUtilsTest {
|
||||
private static final String LINK_ADDRESS_STRING = "192.168.1.10/24";
|
||||
private static final String IP_ADDRESS_STRING = "192.168.1.10";
|
||||
private static final int PREFIX_LENGTH = 24;
|
||||
|
||||
@Test
|
||||
public void testconvertMeteredOverrideToProto() {
|
||||
assertEquals(MeteredOverrideProto.METERED_OVERRIDE_FORCE_METERED,
|
||||
|
|
@ -59,4 +65,25 @@ public class ProtoConfigUtilsTest {
|
|||
ProtoConfigUtils.convertMeteredOverrideFromProto(
|
||||
MeteredOverrideProto.METERED_OVERRIDE_NONE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertLinkAddressToProto() {
|
||||
LinkAddress linkAddr = new LinkAddress(LINK_ADDRESS_STRING);
|
||||
LinkAddressProto proto = ProtoConfigUtils.convertLinkAddressToProto(linkAddr);
|
||||
|
||||
assertEquals(IP_ADDRESS_STRING, proto.getAddress());
|
||||
assertEquals(PREFIX_LENGTH, proto.getPrefixLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertLinkAddressFromProto() {
|
||||
LinkAddressProto proto = LinkAddressProto.newBuilder()
|
||||
.setAddress(IP_ADDRESS_STRING)
|
||||
.setPrefixLength(PREFIX_LENGTH)
|
||||
.build();
|
||||
|
||||
LinkAddress actual = ProtoConfigUtils.convertLinkAddressFromProto(proto);
|
||||
LinkAddress target = new LinkAddress(LINK_ADDRESS_STRING);
|
||||
assertEquals(actual, target);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue