diff --git a/testing/src/main/java/io/grpc/testing/TestUtils.java b/testing/src/main/java/io/grpc/testing/TestUtils.java index c584de5954..a307073b85 100644 --- a/testing/src/main/java/io/grpc/testing/TestUtils.java +++ b/testing/src/main/java/io/grpc/testing/TestUtils.java @@ -159,7 +159,7 @@ public class TestUtils { * * @param name name of a file in src/main/resources/certs. * - * @deprecated Not for public use + * @deprecated Not for public use. Use {@link TlsTesting#loadCert} instead. */ @Deprecated public static File loadCert(String name) throws IOException { diff --git a/testing/src/main/java/io/grpc/testing/TlsTesting.java b/testing/src/main/java/io/grpc/testing/TlsTesting.java new file mode 100644 index 0000000000..c71af990f3 --- /dev/null +++ b/testing/src/main/java/io/grpc/testing/TlsTesting.java @@ -0,0 +1,38 @@ +/* + * Copyright 2017, gRPC Authors All rights reserved. + * + * 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.testing; + +import io.grpc.ExperimentalApi; +import java.io.InputStream; + +/** Convenience utilities for using TLS in tests. */ +@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1791") +public final class TlsTesting { + /** + * Retrieves the specified test certificate or key resource in src/main/resources/certs/ as an + * {@code InputStream}. + * + * @param name name of a file in src/main/resources/certs/, e.g., {@code "ca.key"}. + * + * @since 1.8.0 + */ + public static InputStream loadCert(String name) { + return TestUtils.class.getResourceAsStream("/certs/" + name); + } + + private TlsTesting() {} +} diff --git a/testing/src/test/java/io/grpc/testing/TlsTestingTest.java b/testing/src/test/java/io/grpc/testing/TlsTestingTest.java new file mode 100644 index 0000000000..554edac6f2 --- /dev/null +++ b/testing/src/test/java/io/grpc/testing/TlsTestingTest.java @@ -0,0 +1,41 @@ +/* + * Copyright 2017, gRPC Authors All rights reserved. + * + * 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.testing; + +import static org.junit.Assert.assertNotNull; + +import java.io.InputStream; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Unit tests for {@link TlsTesting}. */ +@RunWith(JUnit4.class) +public class TlsTestingTest { + @Test + public void loadCert() throws Exception { + InputStream is = null; + try { + is = TlsTesting.loadCert("ca.key"); + assertNotNull(is); + } finally { + if (is != null) { + is.close(); + } + } + } +}