Преглед изворни кода

Uncomment the test, which was commented out during integration

Jisi Liu пре 10 година
родитељ
комит
1b8bab3a78
1 измењених фајлова са 184 додато и 185 уклоњено
  1. 184 185
      java/core/src/test/java/com/google/protobuf/ParseExceptionsTest.java

+ 184 - 185
java/core/src/test/java/com/google/protobuf/ParseExceptionsTest.java

@@ -24,189 +24,188 @@ import static org.junit.Assert.fail;
  */
 public class ParseExceptionsTest {
 
-// disable for now for update the maven local repo.
-//   private interface ParseTester {
-//     DescriptorProto parse(InputStream in) throws IOException;
-//   }
-// 
-//   private byte serializedProto[];
-// 
-//   private void setup() {
-//     serializedProto = DescriptorProto.getDescriptor().toProto().toByteArray();
-//   }
-// 
-//   private void setupDelimited() {
-//     ByteArrayOutputStream bos = new ByteArrayOutputStream();
-//     try {
-//       DescriptorProto.getDescriptor().toProto().writeDelimitedTo(bos);
-//     } catch (IOException e) {
-//       fail("Exception not expected: " + e);
-//     }
-//     serializedProto = bos.toByteArray();
-//   }
-// 
-//   @Test public void message_parseFrom_InputStream() {
-//     setup();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         return DescriptorProto.parseFrom(in);
-//       }
-//     });
-//   }
-// 
-//   @Test public void message_parseFrom_InputStreamAndExtensionRegistry() {
-//     setup();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         return DescriptorProto.parseFrom(in, ExtensionRegistry.newInstance());
-//       }
-//     });
-//   }
-// 
-//   @Test public void message_parseFrom_CodedInputStream() {
-//     setup();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         return DescriptorProto.parseFrom(CodedInputStream.newInstance(in));
-//       }
-//     });
-//   }
-// 
-//   @Test public void message_parseFrom_CodedInputStreamAndExtensionRegistry() {
-//     setup();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         return DescriptorProto.parseFrom(CodedInputStream.newInstance(in),
-//             ExtensionRegistry.newInstance());
-//       }
-//     });
-//   }
-// 
-//   @Test public void message_parseDelimitedFrom_InputStream() {
-//     setupDelimited();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         return DescriptorProto.parseDelimitedFrom(in);
-//       }
-//     });
-//   }
-// 
-//   @Test public void message_parseDelimitedFrom_InputStreamAndExtensionRegistry() {
-//     setupDelimited();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         return DescriptorProto.parseDelimitedFrom(in, ExtensionRegistry.newInstance());
-//       }
-//     });
-//   }
-// 
-//   @Test public void messageBuilder_mergeFrom_InputStream() {
-//     setup();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         return DescriptorProto.newBuilder().mergeFrom(in).build();
-//       }
-//     });
-//   }
-// 
-//   @Test public void messageBuilder_mergeFrom_InputStreamAndExtensionRegistry() {
-//     setup();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         return DescriptorProto.newBuilder().mergeFrom(in, ExtensionRegistry.newInstance()).build();
-//       }
-//     });
-//   }
-// 
-//   @Test public void messageBuilder_mergeFrom_CodedInputStream() {
-//     setup();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         return DescriptorProto.newBuilder().mergeFrom(CodedInputStream.newInstance(in)).build();
-//       }
-//     });
-//   }
-// 
-//   @Test public void messageBuilder_mergeFrom_CodedInputStreamAndExtensionRegistry() {
-//     setup();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         return DescriptorProto.newBuilder()
-//             .mergeFrom(CodedInputStream.newInstance(in), ExtensionRegistry.newInstance()).build();
-//       }
-//     });
-//   }
-// 
-//   @Test public void messageBuilder_mergeDelimitedFrom_InputStream() {
-//     setupDelimited();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         DescriptorProto.Builder builder = DescriptorProto.newBuilder();
-//         builder.mergeDelimitedFrom(in);
-//         return builder.build();
-//       }
-//     });
-//   }
-// 
-//   @Test public void messageBuilder_mergeDelimitedFrom_InputStreamAndExtensionRegistry() {
-//     setupDelimited();
-//     verifyExceptions(new ParseTester() {
-//       public DescriptorProto parse(InputStream in) throws IOException {
-//         DescriptorProto.Builder builder = DescriptorProto.newBuilder();
-//         builder.mergeDelimitedFrom(in, ExtensionRegistry.newInstance());
-//         return builder.build();
-//       }
-//     });
-//   }
-// 
-//   private void verifyExceptions(ParseTester parseTester) {
-//     // No exception
-//     try {
-//       assertEquals(DescriptorProto.getDescriptor().toProto(),
-//           parseTester.parse(new ByteArrayInputStream(serializedProto)));
-//     } catch (IOException e) {
-//       fail("No exception expected: " + e);
-//     }
-// 
-//     // IOException
-//     try {
-//       // using a "broken" stream that will throw part-way through reading the message
-//       parseTester.parse(broken(new ByteArrayInputStream(serializedProto)));
-//       fail("IOException expected but not thrown");
-//     } catch (IOException e) {
-//       assertFalse(e instanceof InvalidProtocolBufferException);
-//     }
-// 
-//     // InvalidProtocolBufferException
-//     try {
-//       // make the serialized proto invalid
-//       for (int i = 0; i < 50; i++) {
-//         serializedProto[i] = -1;
-//       }
-//       parseTester.parse(new ByteArrayInputStream(serializedProto));
-//       fail("InvalidProtocolBufferException expected but not thrown");
-//     } catch (IOException e) {
-//       assertTrue(e instanceof InvalidProtocolBufferException);
-//     }
-//   }
-// 
-//   private InputStream broken(InputStream i) {
-//     return new FilterInputStream(i) {
-//       int count = 0;
-// 
-//       @Override public int read() throws IOException {
-//         if (count++ >= 50) {
-//           throw new IOException("I'm broken!");
-//         }
-//         return super.read();
-//       }
-// 
-//       @Override public int read(byte b[], int off, int len) throws IOException {
-//         if ((count += len) >= 50) {
-//           throw new IOException("I'm broken!");
-//         }
-//         return super.read(b, off, len);
-//       }
-//     };
-//   }
+  private interface ParseTester {
+    DescriptorProto parse(InputStream in) throws IOException;
+  }
+
+  private byte serializedProto[];
+
+  private void setup() {
+    serializedProto = DescriptorProto.getDescriptor().toProto().toByteArray();
+  }
+
+  private void setupDelimited() {
+    ByteArrayOutputStream bos = new ByteArrayOutputStream();
+    try {
+      DescriptorProto.getDescriptor().toProto().writeDelimitedTo(bos);
+    } catch (IOException e) {
+      fail("Exception not expected: " + e);
+    }
+    serializedProto = bos.toByteArray();
+  }
+
+  @Test public void message_parseFrom_InputStream() {
+    setup();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        return DescriptorProto.parseFrom(in);
+      }
+    });
+  }
+
+  @Test public void message_parseFrom_InputStreamAndExtensionRegistry() {
+    setup();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        return DescriptorProto.parseFrom(in, ExtensionRegistry.newInstance());
+      }
+    });
+  }
+
+  @Test public void message_parseFrom_CodedInputStream() {
+    setup();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        return DescriptorProto.parseFrom(CodedInputStream.newInstance(in));
+      }
+    });
+  }
+
+  @Test public void message_parseFrom_CodedInputStreamAndExtensionRegistry() {
+    setup();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        return DescriptorProto.parseFrom(CodedInputStream.newInstance(in),
+            ExtensionRegistry.newInstance());
+      }
+    });
+  }
+
+  @Test public void message_parseDelimitedFrom_InputStream() {
+    setupDelimited();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        return DescriptorProto.parseDelimitedFrom(in);
+      }
+    });
+  }
+
+  @Test public void message_parseDelimitedFrom_InputStreamAndExtensionRegistry() {
+    setupDelimited();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        return DescriptorProto.parseDelimitedFrom(in, ExtensionRegistry.newInstance());
+      }
+    });
+  }
+
+  @Test public void messageBuilder_mergeFrom_InputStream() {
+    setup();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        return DescriptorProto.newBuilder().mergeFrom(in).build();
+      }
+    });
+  }
+
+  @Test public void messageBuilder_mergeFrom_InputStreamAndExtensionRegistry() {
+    setup();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        return DescriptorProto.newBuilder().mergeFrom(in, ExtensionRegistry.newInstance()).build();
+      }
+    });
+  }
+
+  @Test public void messageBuilder_mergeFrom_CodedInputStream() {
+    setup();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        return DescriptorProto.newBuilder().mergeFrom(CodedInputStream.newInstance(in)).build();
+      }
+    });
+  }
+
+  @Test public void messageBuilder_mergeFrom_CodedInputStreamAndExtensionRegistry() {
+    setup();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        return DescriptorProto.newBuilder()
+            .mergeFrom(CodedInputStream.newInstance(in), ExtensionRegistry.newInstance()).build();
+      }
+    });
+  }
+
+  @Test public void messageBuilder_mergeDelimitedFrom_InputStream() {
+    setupDelimited();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        DescriptorProto.Builder builder = DescriptorProto.newBuilder();
+        builder.mergeDelimitedFrom(in);
+        return builder.build();
+      }
+    });
+  }
+
+  @Test public void messageBuilder_mergeDelimitedFrom_InputStreamAndExtensionRegistry() {
+    setupDelimited();
+    verifyExceptions(new ParseTester() {
+      public DescriptorProto parse(InputStream in) throws IOException {
+        DescriptorProto.Builder builder = DescriptorProto.newBuilder();
+        builder.mergeDelimitedFrom(in, ExtensionRegistry.newInstance());
+        return builder.build();
+      }
+    });
+  }
+
+  private void verifyExceptions(ParseTester parseTester) {
+    // No exception
+    try {
+      assertEquals(DescriptorProto.getDescriptor().toProto(),
+          parseTester.parse(new ByteArrayInputStream(serializedProto)));
+    } catch (IOException e) {
+      fail("No exception expected: " + e);
+    }
+
+    // IOException
+    try {
+      // using a "broken" stream that will throw part-way through reading the message
+      parseTester.parse(broken(new ByteArrayInputStream(serializedProto)));
+      fail("IOException expected but not thrown");
+    } catch (IOException e) {
+      assertFalse(e instanceof InvalidProtocolBufferException);
+    }
+
+    // InvalidProtocolBufferException
+    try {
+      // make the serialized proto invalid
+      for (int i = 0; i < 50; i++) {
+        serializedProto[i] = -1;
+      }
+      parseTester.parse(new ByteArrayInputStream(serializedProto));
+      fail("InvalidProtocolBufferException expected but not thrown");
+    } catch (IOException e) {
+      assertTrue(e instanceof InvalidProtocolBufferException);
+    }
+  }
+
+  private InputStream broken(InputStream i) {
+    return new FilterInputStream(i) {
+      int count = 0;
+
+      @Override public int read() throws IOException {
+        if (count++ >= 50) {
+          throw new IOException("I'm broken!");
+        }
+        return super.read();
+      }
+
+      @Override public int read(byte b[], int off, int len) throws IOException {
+        if ((count += len) >= 50) {
+          throw new IOException("I'm broken!");
+        }
+        return super.read(b, off, len);
+      }
+    };
+  }
 }