|
50 | 50 | import java.util.Collections; |
51 | 51 | import java.util.Iterator; |
52 | 52 | import java.util.List; |
| 53 | +import java.util.logging.Level; |
| 54 | +import java.util.logging.LogRecord; |
| 55 | +import java.util.logging.Logger; |
53 | 56 | import org.junit.After; |
54 | 57 | import org.junit.Test; |
55 | 58 | import org.junit.runner.RunWith; |
@@ -1999,9 +2002,19 @@ public void extendableBuilder_mergeFrom_repeatedField_doesNotInvalidateExistingB |
1999 | 2002 | assertThat(builder.getRepeatedField(REPEATED_NESTED_MESSAGE_EXTENSION, 0)) |
2000 | 2003 | .isEqualTo(NestedMessage.newBuilder().setBb(100).build()); |
2001 | 2004 | } |
| 2005 | + |
| 2006 | + private TestUtil.TestLogHandler setupLogger() { |
| 2007 | + TestUtil.TestLogHandler logHandler = new TestUtil.TestLogHandler(); |
| 2008 | + Logger logger = Logger.getLogger(GeneratedMessage.class.getName()); |
| 2009 | + logger.addHandler(logHandler); |
| 2010 | + logHandler.setLevel(Level.ALL); |
| 2011 | + return logHandler; |
| 2012 | + } |
| 2013 | + |
2002 | 2014 |
|
2003 | 2015 | @Test |
2004 | | - public void generatedMessage_makeExtensionsImmutableShouldThrow() { |
| 2016 | + public void generatedMessage_makeExtensionsImmutableShouldLog() { |
| 2017 | + TestUtil.TestLogHandler logHandler = setupLogger(); |
2005 | 2018 | GeneratedMessageV3 msg = |
2006 | 2019 | new GeneratedMessageV3() { |
2007 | 2020 | @Override |
@@ -2029,27 +2042,24 @@ public Message getDefaultInstanceForType() { |
2029 | 2042 | return null; |
2030 | 2043 | } |
2031 | 2044 | }; |
2032 | | - try { |
2033 | | - msg.makeExtensionsImmutable(); |
2034 | | - assertWithMessage("Expected UnsupportedOperationException").fail(); |
2035 | | - } catch (UnsupportedOperationException e) { |
2036 | | - // Expected |
2037 | | - assertThat(e).hasMessageThat().contains(GeneratedMessage.PRE22_GENCODE_VULNERABILITY_MESSAGE); |
2038 | | - assertThat(e).hasMessageThat().contains(GeneratedMessage.PRE22_GENCODE_ACKNOWLEGE_PROPERTY); |
2039 | | - } |
| 2045 | + msg.makeExtensionsImmutable(); |
| 2046 | + List<LogRecord> logs = logHandler.getStoredLogRecords(); |
| 2047 | + assertThat(logs).hasSize(1); |
| 2048 | + String message = logs.get(0).getMessage(); |
| 2049 | + assertThat(message).contains(GeneratedMessage.PRE22_GENCODE_VULNERABILITY_MESSAGE); |
| 2050 | + assertThat(message).contains(GeneratedMessage.PRE22_GENCODE_SILENCE_PROPERTY); |
2040 | 2051 | } |
2041 | 2052 |
|
2042 | 2053 | @Test |
2043 | 2054 | public void extendableMessage_makeExtensionsImmutableShouldThrow() { |
| 2055 | + TestUtil.TestLogHandler logHandler = setupLogger(); |
2044 | 2056 | GeneratedMessageV3.ExtendableMessage<TestAllExtensions> msg = |
2045 | 2057 | TestAllExtensions.getDefaultInstance(); |
2046 | | - try { |
2047 | | - msg.makeExtensionsImmutable(); |
2048 | | - assertWithMessage("Expected UnsupportedOperationException").fail(); |
2049 | | - } catch (UnsupportedOperationException e) { |
2050 | | - // Expected |
2051 | | - assertThat(e).hasMessageThat().contains(GeneratedMessage.PRE22_GENCODE_VULNERABILITY_MESSAGE); |
2052 | | - assertThat(e).hasMessageThat().contains(GeneratedMessage.PRE22_GENCODE_ACKNOWLEGE_PROPERTY); |
2053 | | - } |
| 2058 | + msg.makeExtensionsImmutable(); |
| 2059 | + List<LogRecord> logs = logHandler.getStoredLogRecords(); |
| 2060 | + assertThat(logs).hasSize(1); |
| 2061 | + String message = logs.get(0).getMessage(); |
| 2062 | + assertThat(message).contains(GeneratedMessage.PRE22_GENCODE_VULNERABILITY_MESSAGE); |
| 2063 | + assertThat(message).contains(GeneratedMessage.PRE22_GENCODE_SILENCE_PROPERTY); |
2054 | 2064 | } |
2055 | 2065 | } |
0 commit comments