blob: 943661066310bf1f325f5c51a1dc0b293a69eea2 [file] [log] [blame]
import Kt
private func testObject() throws {
let object = KT43780TestObject.shared
try assertEquals(actual: object.x, expected: 5)
try assertEquals(actual: object.y, expected: 6)
try assertEquals(actual: object.shared, expected: "shared")
try assertEquals(actual: object.Shared, expected: "Shared")
try assertTrue(object === KT43780TestObject())
}
private func testCompanionObject() throws {
let object = KT43780TestClassWithCompanion.companion
try assertEquals(actual: object.z, expected: 7)
try assertTrue(object === KT43780TestClassWithCompanion.Companion())
try assertTrue(object === KT43780TestClassWithCompanion.Companion.shared)
}
private func testNameClash() throws {
let object = Shared.shared
try assertEquals(actual: object.x, expected: 8)
try assertTrue(object === Shared())
let object2 = Companion.companion
try assertEquals(actual: object2.x, expected: 9)
try assertTrue(object2 === Companion.Companion())
let object3 = Companion()
try assertEquals(actual: object3.t, expected: 10)
let object4 = Companion()
try assertEquals(actual: object4.t, expected: 10)
try assertTrue(object3 !== object4)
let object5 = KT43780Enum.Companion()
try assertEquals(actual: object5.x, expected: 11)
try assertTrue(object5 === KT43780Enum.Companion())
let enumEntry : KT43780Enum = KT43780Enum.companion
try assertEquals(actual: enumEntry.name, expected: "COMPANION")
try assertEquals(actual: KT43780Enum.otherEntry.name, expected: "OTHER_ENTRY")
}
// Reported as https://youtrack.jetbrains.com/issue/KT-47462
private func testUnexposedCompanion() throws {
// Just trying to ensure that the classes are accessible:
try assertEquals(actual: 13, expected: ClassWithInternalCompanion().y)
try assertEquals(actual: 15, expected: ClassWithPrivateCompanion().y)
// and this doesn't make the companions accessible as well.
}
class Kt43780Tests : SimpleTestProvider {
override init() {
super.init()
test("testObject", testObject)
test("testCompanionObject", testCompanionObject)
test("testNameClash", testNameClash)
test("testUnexposedCompanion", testUnexposedCompanion)
}
}