025771460c
^KT-61259
59 lines
2.2 KiB
Swift
Vendored
59 lines
2.2 KiB
Swift
Vendored
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)
|
|
}
|
|
}
|