From 74a57f37441eb5faa1ad335b095fcb43bc924c1a Mon Sep 17 00:00:00 2001 From: Dave Borowitz Date: Wed, 15 Jul 2015 18:04:10 -0700 Subject: [PATCH] PushCertificateParser: Add fromString method Change-Id: I74c3f65a9ff297f708d996a4c138456a31a466b8 --- .../transport/PushCertificateParserTest.java | 13 ++++++++++--- .../jgit/transport/PushCertificateParser.java | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) 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.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 void testConcatPacketLinesInsertsNewlines() throws Exception { @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 void testParseReader() throws Exception { 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 static PushCertificate fromReader(Reader r) 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;