diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushCertificateParserTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushCertificateParserTest.java index 3a4b00d87..824766e16 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushCertificateParserTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushCertificateParserTest.java @@ -55,6 +55,7 @@ import java.io.EOFException; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; +import java.io.StringReader; import org.eclipse.jgit.errors.PackProtocolException; import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription; @@ -280,9 +281,7 @@ public class PushCertificateParserTest { @Test public void testParseReader() throws Exception { - Reader reader = new InputStreamReader( - new ByteArrayInputStream( - Constants.encode(concatPacketLines(INPUT, 0, 18)))); + Reader reader = new StringReader(concatPacketLines(INPUT, 0, 18)); PushCertificate streamCert = PushCertificateParser.fromReader(reader); PacketLineIn pckIn = newPacketLineIn(INPUT); @@ -320,6 +319,14 @@ public class PushCertificateParserTest { assertEquals(pckCmd.getNewId().name(), streamCmd.getNewId().name()); } + @Test + public void testParseString() throws Exception { + String str = concatPacketLines(INPUT, 0, 18); + assertEquals( + PushCertificateParser.fromReader(new StringReader(str)), + PushCertificateParser.fromString(str)); + } + @Test public void testParseMultipleFromStream() throws Exception { String input = concatPacketLines(INPUT, 0, 17); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java index 7b827b953..5174f8562 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java @@ -156,6 +156,24 @@ public class PushCertificateParser { return new PushCertificateParser().parse(r); } + /** + * Parse a push certificate from a string. + * + * @see #fromReader(Reader) + * @param str + * input string. + * @return the parsed certificate. + * @throws PackProtocolException + * if the certificate is malformed. + * @throws IOException + * if there was an error reading from the input. + * @since 4.1 + */ + public static PushCertificate fromString(String str) + throws PackProtocolException, IOException { + return fromReader(new java.io.StringReader(str)); + } + private boolean received; private String version; private PushCertificateIdent pusher;