025771460c
^KT-61259
49 lines
2.3 KiB
Swift
Vendored
49 lines
2.3 KiB
Swift
Vendored
/*
|
|
* Copyright 2010-2022 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
|
* that can be found in the LICENSE file.
|
|
*/
|
|
|
|
import Kt
|
|
|
|
private func testCustomComponentMethodsAreAccessible() throws {
|
|
let d = DataClassWithExplicitComponentMethod(x: 1, y: 2)
|
|
try assertEquals(actual: d.component1(arg: 3), expected: 4)
|
|
}
|
|
|
|
private func testDataClassWithInheritedComponentAreAccessible() throws {
|
|
let d = DataClassWithInheritedComponentMethod(x: 1)
|
|
try assertEquals(actual: d.component1(), expected: 1)
|
|
}
|
|
|
|
// Absence of deprecation attributes is checked by comparing "lazy header".
|
|
private func testRegularComponentMethodsAreAccessible() throws {
|
|
let r = RegularClassWithComponentMethods()
|
|
try assertEquals(actual: r.component1(), expected: 3)
|
|
try assertEquals(actual: r.component3(), expected: 4)
|
|
}
|
|
|
|
private func testTopLevelComponentMethodsAreAccessible() throws {
|
|
try assertEquals(actual: DataClassComponentMethodsKt.component1(), expected: 5)
|
|
try assertEquals(actual: DataClassComponentMethodsKt.component4(), expected: 6)
|
|
}
|
|
|
|
private func testComponentExportedOrNot() throws {
|
|
try assertFalse(class_respondsToSelector(object_getClass(DataClassWithStrangeNames.self), NSSelectorFromString("component1")));
|
|
try assertFalse(class_respondsToSelector(object_getClass(DataClassWithStrangeNames.self), NSSelectorFromString("component2")));
|
|
try assertFalse(class_respondsToSelector(object_getClass(DataClassWithStrangeNames.self), NSSelectorFromString("component15")));
|
|
let r = DataClassWithStrangeNames(component124: 1, componentABC:2)
|
|
try assertEquals(actual: r.component124, expected: 1)
|
|
try assertEquals(actual: r.componentABC, expected: 2)
|
|
try assertEquals(actual: r.component16(), expected: 1)
|
|
}
|
|
|
|
class DataClassComponentMethodsTests : SimpleTestProvider {
|
|
override init() {
|
|
super.init()
|
|
test("testDataClassWithInheritedComponentAreAccessible", testDataClassWithInheritedComponentAreAccessible)
|
|
test("testCustomComponentMethodsAreAccessible", testCustomComponentMethodsAreAccessible)
|
|
test("testRegularComponentMethodsAreAccessible", testRegularComponentMethodsAreAccessible)
|
|
test("testTopLevelComponentMethodsAreAccessible", testTopLevelComponentMethodsAreAccessible)
|
|
test("testComponentExportedOrNot", testComponentExportedOrNot)
|
|
}
|
|
} |