public static <MSG extends Message> MSG read(File file, Parser<MSG> parser) {
    InputStream input = null;
    try {
      input = new BufferedInputStream(new FileInputStream(file));
      return parser.parseFrom(input);
    } catch (Exception e) {
      throw ContextException.of("Unable to read message", e).addContext("file", file);
    } finally {
      IOUtils.closeQuietly(input);
    }
  }
@Test
  public void read_file_fails_if_file_does_not_exist() throws Exception {
    assertThatThrownBy(() -> {
      File file = temp.newFile();
      FileUtils.forceDelete(file);
      Protobuf.read(file, Fake.parser());
    }).isInstanceOf(ContextException.class)
      .hasMessageContaining("Unable to read message");
  }