| /* | |
| * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. | |
| * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. | |
| */ | |
| package test.utils | |
| import kotlin.test.* | |
| class LazyTest { | |
| @Test fun initializationCalledOnce() { | |
| var callCount = 0 | |
| val lazyInt = lazy { ++callCount } | |
| assertEquals(0, callCount) | |
| assertFalse(lazyInt.isInitialized()) | |
| assertEquals(1, lazyInt.value) | |
| assertEquals(1, callCount) | |
| assertTrue(lazyInt.isInitialized()) | |
| assertEquals(1, lazyInt.value) | |
| assertEquals(1, callCount) | |
| } | |
| @Test fun alreadyInitialized() { | |
| val lazyInt = lazyOf(1) | |
| assertTrue(lazyInt.isInitialized()) | |
| assertEquals(1, lazyInt.value) | |
| } | |
| @Test fun lazyToString() { | |
| var callCount = 0 | |
| val lazyInt = lazy { ++callCount } | |
| assertNotEquals("1", lazyInt.toString()) | |
| assertEquals(0, callCount) | |
| assertEquals(1, lazyInt.value) | |
| assertEquals("1", lazyInt.toString()) | |
| assertEquals(1, callCount) | |
| } | |
| } |