aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorCarl Mastrangelo <notcarl@google.com>2018-08-02 17:28:36 -0700
committerGitHub <noreply@github.com>2018-08-02 17:28:36 -0700
commit9895e243b1651d03a561e75ec7dd4fd8f16cc49f (patch)
tree2fadc2c867216d77d38ebca81eb90357099c1814 /core
parentb64cde1488a69559386a56a4a809d2e6046c4c18 (diff)
downloadgrpc-grpc-java-9895e243b1651d03a561e75ec7dd4fd8f16cc49f.tar.gz
inprocess: prevent null names, and define socket address equality
Diffstat (limited to 'core')
-rw-r--r--core/src/main/java/io/grpc/inprocess/InProcessSocketAddress.java37
-rw-r--r--core/src/test/java/io/grpc/inprocess/InProcessSocketAddressTest.java50
2 files changed, 85 insertions, 2 deletions
diff --git a/core/src/main/java/io/grpc/inprocess/InProcessSocketAddress.java b/core/src/main/java/io/grpc/inprocess/InProcessSocketAddress.java
index 2b998f709..e5f0515f1 100644
--- a/core/src/main/java/io/grpc/inprocess/InProcessSocketAddress.java
+++ b/core/src/main/java/io/grpc/inprocess/InProcessSocketAddress.java
@@ -16,6 +16,8 @@
package io.grpc.inprocess;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import java.net.SocketAddress;
/**
@@ -26,16 +28,47 @@ public final class InProcessSocketAddress extends SocketAddress {
private final String name;
+ /**
+ * @param name - The name of the inprocess channel or server.
+ * @since 1.0.0
+ */
public InProcessSocketAddress(String name) {
- this.name = name;
+ this.name = checkNotNull(name, "name");
}
+ /**
+ * Gets the name of the inprocess channel or server.
+ *
+ * @since 1.0.0
+ */
public String getName() {
return name;
}
-
+
+ /**
+ * @since 1.14.0
+ */
@Override
public String toString() {
return name;
}
+
+ /**
+ * @since 1.15.0
+ */
+ @Override
+ public int hashCode() {
+ return name.hashCode();
+ }
+
+ /**
+ * @since 1.15.0
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof InProcessSocketAddress)) {
+ return false;
+ }
+ return name.equals(((InProcessSocketAddress) obj).name);
+ }
}
diff --git a/core/src/test/java/io/grpc/inprocess/InProcessSocketAddressTest.java b/core/src/test/java/io/grpc/inprocess/InProcessSocketAddressTest.java
new file mode 100644
index 000000000..fe1df95b1
--- /dev/null
+++ b/core/src/test/java/io/grpc/inprocess/InProcessSocketAddressTest.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2018 The gRPC Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.grpc.inprocess;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+@RunWith(JUnit4.class)
+public class InProcessSocketAddressTest {
+
+ @Test
+ public void equal() {
+ new EqualsTester()
+ .addEqualityGroup(
+ new InProcessSocketAddress("a"),
+ new InProcessSocketAddress(new String("a")))
+ .addEqualityGroup(
+ new InProcessSocketAddress("z"),
+ new InProcessSocketAddress("z"))
+ .addEqualityGroup(
+ new InProcessSocketAddress(""),
+ new InProcessSocketAddress("")
+ )
+ .testEquals();
+ }
+
+ @Test
+ public void hash() {
+ assertThat(new InProcessSocketAddress("a").hashCode())
+ .isEqualTo(new InProcessSocketAddress(new String("a")).hashCode());
+ }
+}