Files
kotlin-fork/native/native.tests/testData/framework/objcexport/enumValues.swift
T
2024-02-05 16:06:34 +00:00

119 lines
5.0 KiB
Swift
Vendored

import Kt
private func testEnumValues() throws {
let values = EnumLeftRightUpDown.values()
try assertEquals(actual: values.size, expected: 4)
try assertSame(actual: values.get(index: 0) as AnyObject, expected: EnumLeftRightUpDown.left)
try assertSame(actual: values.get(index: 1) as AnyObject, expected: EnumLeftRightUpDown.right)
try assertSame(actual: values.get(index: 2) as AnyObject, expected: EnumLeftRightUpDown.up)
try assertSame(actual: values.get(index: 3) as AnyObject, expected: EnumLeftRightUpDown.down)
}
private func testEnumValuesMangled() throws {
let values = EnumOneTwoThreeValues.values_()
try assertEquals(actual: values.size, expected: 5)
try assertSame(actual: values.get(index: 0) as AnyObject, expected: EnumOneTwoThreeValues.one)
try assertSame(actual: values.get(index: 1) as AnyObject, expected: EnumOneTwoThreeValues.two)
try assertSame(actual: values.get(index: 2) as AnyObject, expected: EnumOneTwoThreeValues.three)
try assertSame(actual: values.get(index: 3) as AnyObject, expected: EnumOneTwoThreeValues.values)
try assertSame(actual: values.get(index: 4) as AnyObject, expected: EnumOneTwoThreeValues.entries)
}
private func testEnumValuesMangledTwice() throws {
let values = EnumValuesValues_.values__()
try assertEquals(actual: values.size, expected: 4)
try assertSame(actual: values.get(index: 0) as AnyObject, expected: EnumValuesValues_.values)
try assertSame(actual: values.get(index: 1) as AnyObject, expected: EnumValuesValues_.values_)
try assertSame(actual: values.get(index: 2) as AnyObject, expected: EnumValuesValues_.entries)
try assertSame(actual: values.get(index: 3) as AnyObject, expected: EnumValuesValues_.entries_)
}
private func testEnumValuesEmpty() throws {
try assertEquals(actual: EmptyEnum.values().size, expected: 0)
}
extension NSObject {
// convert to dictionary
static func toDictionary(from classType: AnyClass) -> [String: Any] {
var propertiesCount : CUnsignedInt = 0
let propertiesInAClass = class_copyMethodList(classType, &propertiesCount)
var propertiesDictionary = [String:Any]()
for i in 0 ..< Int(propertiesCount) {
if let property = propertiesInAClass?[i],
let strKey = NSString(utf8String: sel_getName(method_getName(property))) as String? {
propertiesDictionary[strKey] = value(forKey: strKey)
}
}
return propertiesDictionary
}
}
private func testNoEnumEntries() throws {
try assertTrue(class_respondsToSelector(object_getClass(EnumLeftRightUpDown.self), NSSelectorFromString("entries")));
try assertFalse(class_respondsToSelector(object_getClass(NoEnumEntriesEnum.self), NSSelectorFromString("entries")));
}
private func testEnumEntries() throws {
let entries = EnumLeftRightUpDown.entries
try assertEquals(actual: entries.count, expected: 4)
try assertSame(actual: entries[0] as AnyObject, expected: EnumLeftRightUpDown.left)
try assertSame(actual: entries[1] as AnyObject, expected: EnumLeftRightUpDown.right)
try assertSame(actual: entries[2] as AnyObject, expected: EnumLeftRightUpDown.up)
try assertSame(actual: entries[3] as AnyObject, expected: EnumLeftRightUpDown.down)
}
private func testEnumEntriesMangled() throws {
let entries = EnumOneTwoThreeValues.entries_
try assertEquals(actual: entries.count, expected: 5)
try assertSame(actual: entries[0] as AnyObject, expected: EnumOneTwoThreeValues.one)
try assertSame(actual: entries[1] as AnyObject, expected: EnumOneTwoThreeValues.two)
try assertSame(actual: entries[2] as AnyObject, expected: EnumOneTwoThreeValues.three)
try assertSame(actual: entries[3] as AnyObject, expected: EnumOneTwoThreeValues.values)
try assertSame(actual: entries[4] as AnyObject, expected: EnumOneTwoThreeValues.entries)
}
private func testEnumEntriesMangledTwice() throws {
let entries = EnumValuesValues_.entries__
try assertEquals(actual: entries.count, expected: 4)
try assertSame(actual: entries[0] as AnyObject, expected: EnumValuesValues_.values)
try assertSame(actual: entries[1] as AnyObject, expected: EnumValuesValues_.values_)
try assertSame(actual: entries[2] as AnyObject, expected: EnumValuesValues_.entries)
try assertSame(actual: entries[3] as AnyObject, expected: EnumValuesValues_.entries_)
}
private func testEnumEntriesEmpty() throws {
try assertEquals(actual: EmptyEnum.entries.count, expected: 0)
}
class EnumValuesTests : SimpleTestProvider {
override init() {
super.init()
test("TestEnumValues", testEnumValues)
test("TestEnumValuesMangled", testEnumValuesMangled)
test("TestEnumValuesMangledTwice", testEnumValuesMangledTwice)
test("TestEnumValuesEmpty", testEnumValuesEmpty)
test("TestNoEnumEntries", testNoEnumEntries)
test("TestEnumEntries", testEnumEntries)
test("TestEnumEntriesMangled", testEnumEntriesMangled)
test("TestEnumEntriesMangledTwice", testEnumEntriesMangledTwice)
test("TestEnumEntriesEmpty", testEnumEntriesEmpty)
}
}