<lambda>null1package leakcanary 2 3 import org.assertj.core.api.Assertions.assertThat 4 import org.junit.Rule 5 import org.junit.Test 6 import org.junit.rules.RuleChain 7 import org.junit.rules.TestRule 8 import org.junit.runner.Description 9 import org.junit.runners.model.Statement 10 11 class DetectLeaksAfterTestSuccessTest { 12 13 object CheckAssertNoLeaksInvoked : TestRule { 14 override fun apply(base: Statement, description: Description): Statement { 15 return object : Statement() { 16 override fun evaluate() { 17 try { 18 var assertNoLeaksInvoked = false 19 DetectLeaksAssert.update { tag -> 20 assertNoLeaksInvoked = true 21 } 22 base.evaluate() 23 assertThat(assertNoLeaksInvoked).isTrue() 24 } finally { 25 DetectLeaksAssert.update(AndroidDetectLeaksAssert()) 26 } 27 } 28 } 29 } 30 } 31 32 @get:Rule 33 val rule: RuleChain = RuleChain.outerRule(CheckAssertNoLeaksInvoked).around(DetectLeaksAfterTestSuccess()) 34 35 @Test fun emptyTest() { 36 // This test triggers the rules. 37 } 38 } 39