tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

LogGradleErrorForTreeHerderTest.kt (3845B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 import org.junit.jupiter.api.Assertions.assertLinesMatch
      6 import org.junit.jupiter.api.Test
      7 
      8 class LogGradleErrorForTreeHerderJupiterTest {
      9    private fun assertEqualLines(expected: String, actual: String) {
     10        assertLinesMatch(
     11            expected.split("\n"),
     12            actual.trimEnd('\n').split("\n"))
     13    }
     14 
     15    @Test
     16    fun `getIndentedMessage formats a single exception message correctly`() {
     17        val exception = RuntimeException("Test message")
     18        val actualMessage = LogGradleErrorForTreeHerder.getIndentedMessage(exception)
     19        assertEqualLines("""
     20            Test message
     21        """.trimIndent(), actualMessage)
     22    }
     23 
     24    @Test
     25    fun `getIndentedMessage formats an exception with a single cause correctly`() {
     26        val cause = IllegalStateException("Cause message")
     27        val exception = RuntimeException("Test message", cause)
     28        val actualMessage: String = LogGradleErrorForTreeHerder.getIndentedMessage(exception)
     29        assertEqualLines("""
     30            Test message
     31            > Cause message
     32        """.trimIndent(), actualMessage)
     33    }
     34 
     35    @Test
     36    fun `getIndentedMessage formats an exception with multiple nested causes correctly`() {
     37        val deepestCause = NullPointerException("Deepest cause\nDeepest cause 2")
     38        val middleCause = IllegalArgumentException("Middle cause\nMiddle cause 2", deepestCause)
     39        val exception = RuntimeException("Top-level message", middleCause)
     40        val actualMessage = LogGradleErrorForTreeHerder.getIndentedMessage(exception)
     41        assertEqualLines("""
     42            Top-level message
     43            > Middle cause
     44              Middle cause 2
     45              > Deepest cause
     46                Deepest cause 2
     47        """.trimIndent(), actualMessage)
     48    }
     49 
     50    @Test
     51    fun `getIndentedMessage handles an exception with a null message`() {
     52        val exception = RuntimeException(null as String?)
     53        val actualMessage = LogGradleErrorForTreeHerder.getIndentedMessage(exception)
     54        assertEqualLines("""
     55 
     56        """.trimIndent(), actualMessage)
     57    }
     58 
     59    @Test
     60    fun `getIndentedMessage handles an exception with an empty message`() {
     61        val exception = RuntimeException("")
     62        val actualMessage = LogGradleErrorForTreeHerder.getIndentedMessage(exception)
     63        assertEqualLines("""
     64 
     65        """.trimIndent(), actualMessage)
     66    }
     67 
     68    @Test
     69    fun `getIndentedMessage handles an exception message with newlines`() {
     70        val exception = RuntimeException("First line\nSecond line")
     71        val actualMessage = LogGradleErrorForTreeHerder.getIndentedMessage(exception)
     72        assertEqualLines("""
     73            First line
     74            Second line
     75        """.trimIndent(), actualMessage)
     76    }
     77 
     78    @Test
     79    fun `getIndentedMessage handles an exception message with newlines and a cause`() {
     80        val cause = IllegalStateException("Cause\nAnother cause line")
     81        val exception = RuntimeException("First line\nSecond line", cause)
     82        val actualMessage = LogGradleErrorForTreeHerder.getIndentedMessage(exception)
     83        assertEqualLines("""
     84            First line
     85            Second line
     86            > Cause
     87              Another cause line
     88        """.trimIndent(), actualMessage)
     89    }
     90 
     91    @Test
     92    fun `getIndentedMessage handles a cause with a null message`() {
     93        val cause = IllegalStateException(null as String?)
     94        val exception = RuntimeException("Test message", cause)
     95        val actualMessage = LogGradleErrorForTreeHerder.getIndentedMessage(exception)
     96        assertEqualLines("""
     97            Test message
     98            >
     99        """.trimIndent(), actualMessage)
    100    }
    101 }