diff --git a/.ci.yaml b/.ci.yaml index 0974ed8c29..39df074052 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -131,10 +131,11 @@ targets: target_file: repo_checks.yaml channel: master version_file: flutter_master.version - # The format check requires clang-format. + # The format check requires clang-format, and the current version of ktfmt requires JDK 11+. dependencies: >- [ - {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"} + {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, + {"dependency": "open_jdk", "version": "version:17"} ] - name: Linux dart_unit_test_shard_1 master diff --git a/packages/animations/example/android/app/src/main/kotlin/dev/flutter/packages/animations/example/MainActivity.kt b/packages/animations/example/android/app/src/main/kotlin/dev/flutter/packages/animations/example/MainActivity.kt index a1f83b44dd..98673b425d 100644 --- a/packages/animations/example/android/app/src/main/kotlin/dev/flutter/packages/animations/example/MainActivity.kt +++ b/packages/animations/example/android/app/src/main/kotlin/dev/flutter/packages/animations/example/MainActivity.kt @@ -5,6 +5,4 @@ package dev.flutter.packages.animations.example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { - -} +class MainActivity : FlutterActivity() {} diff --git a/packages/dynamic_layouts/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt b/packages/dynamic_layouts/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt index 31739e5841..b18c9dbb16 100644 --- a/packages/dynamic_layouts/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt +++ b/packages/dynamic_layouts/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt @@ -5,5 +5,4 @@ package com.example.example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/file_selector/file_selector/example/android/app/src/main/kotlin/dev/flutter/plugins/file_selector_example/MainActivity.kt b/packages/file_selector/file_selector/example/android/app/src/main/kotlin/dev/flutter/plugins/file_selector_example/MainActivity.kt index 9bf2bbdb81..4ed379904e 100644 --- a/packages/file_selector/file_selector/example/android/app/src/main/kotlin/dev/flutter/plugins/file_selector_example/MainActivity.kt +++ b/packages/file_selector/file_selector/example/android/app/src/main/kotlin/dev/flutter/plugins/file_selector_example/MainActivity.kt @@ -6,5 +6,4 @@ package dev.flutter.plugins.file_selector_example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/flutter_adaptive_scaffold/example/android/app/src/main/kotlin/dev/flutter/example/MainActivity.kt b/packages/flutter_adaptive_scaffold/example/android/app/src/main/kotlin/dev/flutter/example/MainActivity.kt index a17091ebe9..128d3bc15e 100644 --- a/packages/flutter_adaptive_scaffold/example/android/app/src/main/kotlin/dev/flutter/example/MainActivity.kt +++ b/packages/flutter_adaptive_scaffold/example/android/app/src/main/kotlin/dev/flutter/example/MainActivity.kt @@ -6,5 +6,4 @@ package dev.flutter.example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/flutter_image/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt b/packages/flutter_image/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt index 56d56eee85..91a2d1d15f 100644 --- a/packages/flutter_image/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt +++ b/packages/flutter_image/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt @@ -6,5 +6,4 @@ package com.example.example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/flutter_markdown/example/android/app/src/main/kotlin/io/flutter/packages/flutter_markdown_example/MainActivity.kt b/packages/flutter_markdown/example/android/app/src/main/kotlin/io/flutter/packages/flutter_markdown_example/MainActivity.kt index 8ca0f14fa3..2ce4181038 100644 --- a/packages/flutter_markdown/example/android/app/src/main/kotlin/io/flutter/packages/flutter_markdown_example/MainActivity.kt +++ b/packages/flutter_markdown/example/android/app/src/main/kotlin/io/flutter/packages/flutter_markdown_example/MainActivity.kt @@ -5,5 +5,4 @@ package io.flutter.packages.flutter_markdown_example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/go_router/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt b/packages/go_router/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt index 56d56eee85..91a2d1d15f 100644 --- a/packages/go_router/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt +++ b/packages/go_router/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt @@ -6,5 +6,4 @@ package com.example.example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/palette_generator/example/android/app/src/main/kotlin/io/flutter/packages/palettegenerator/example/MainActivity.kt b/packages/palette_generator/example/android/app/src/main/kotlin/io/flutter/packages/palettegenerator/example/MainActivity.kt index 3dc39da44c..ed9f704249 100644 --- a/packages/palette_generator/example/android/app/src/main/kotlin/io/flutter/packages/palettegenerator/example/MainActivity.kt +++ b/packages/palette_generator/example/android/app/src/main/kotlin/io/flutter/packages/palettegenerator/example/MainActivity.kt @@ -5,6 +5,4 @@ package io.flutter.packages.palettegenerator.imagecolors import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { - -} +class MainActivity : FlutterActivity() {} diff --git a/packages/pigeon/example/README.md b/packages/pigeon/example/README.md index f0574df814..98f9a7596d 100644 --- a/packages/pigeon/example/README.md +++ b/packages/pigeon/example/README.md @@ -146,14 +146,14 @@ private class PigeonApiImplementation: ExampleHostApi { ### Kotlin ```kotlin -private class PigeonApiImplementation: ExampleHostApi { +private class PigeonApiImplementation : ExampleHostApi { override fun getHostLanguage(): String { return "Kotlin" } override fun add(a: Long, b: Long): Long { if (a < 0L || b < 0L) { - throw FlutterError("code", "message", "details"); + throw FlutterError("code", "message", "details") } return a + b } @@ -258,9 +258,7 @@ private class PigeonFlutterApi { } fun callFlutterMethod(aString: String, callback: (Result) -> Unit) { - flutterApi!!.flutterMethod(aString) { - echo -> callback(Result.success(echo)) - } + flutterApi!!.flutterMethod(aString) { echo -> callback(Result.success(echo)) } } } ``` diff --git a/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/MainActivity.kt b/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/MainActivity.kt index 3f7d3b3362..6882861350 100644 --- a/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/MainActivity.kt +++ b/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/MainActivity.kt @@ -5,24 +5,23 @@ package dev.flutter.pigeon_example_app import ExampleHostApi +import FlutterError import MessageData import MessageFlutterApi -import FlutterError - import androidx.annotation.NonNull import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.engine.FlutterEngine import io.flutter.embedding.engine.plugins.FlutterPlugin // #docregion kotlin-class -private class PigeonApiImplementation: ExampleHostApi { +private class PigeonApiImplementation : ExampleHostApi { override fun getHostLanguage(): String { return "Kotlin" } override fun add(a: Long, b: Long): Long { if (a < 0L || b < 0L) { - throw FlutterError("code", "message", "details"); + throw FlutterError("code", "message", "details") } return a + b } @@ -47,18 +46,16 @@ private class PigeonFlutterApi { } fun callFlutterMethod(aString: String, callback: (Result) -> Unit) { - flutterApi!!.flutterMethod(aString) { - echo -> callback(Result.success(echo)) - } + flutterApi!!.flutterMethod(aString) { echo -> callback(Result.success(echo)) } } } // #enddocregion kotlin-class-flutter -class MainActivity: FlutterActivity() { +class MainActivity : FlutterActivity() { override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { super.configureFlutterEngine(flutterEngine) val api = PigeonApiImplementation() - ExampleHostApi.setUp(flutterEngine.dartExecutor.binaryMessenger, api); + ExampleHostApi.setUp(flutterEngine.dartExecutor.binaryMessenger, api) } } diff --git a/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/Messages.g.kt b/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/Messages.g.kt index 96104475a5..00e48beba9 100644 --- a/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/Messages.g.kt +++ b/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/Messages.g.kt @@ -4,7 +4,6 @@ // Autogenerated from Pigeon, do not edit directly. // See also: https://pub.dev/packages/pigeon - import android.util.Log import io.flutter.plugin.common.BasicMessageChannel import io.flutter.plugin.common.BinaryMessenger @@ -19,33 +18,31 @@ private fun wrapResult(result: Any?): List { private fun wrapError(exception: Throwable): List { if (exception is FlutterError) { - return listOf( - exception.code, - exception.message, - exception.details - ) + return listOf(exception.code, exception.message, exception.details) } else { return listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) - ) + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)) } } private fun createConnectionError(channelName: String): FlutterError { - return FlutterError("channel-error", "Unable to establish connection on channel: '$channelName'.", "")} + return FlutterError( + "channel-error", "Unable to establish connection on channel: '$channelName'.", "") +} /** * Error class for passing custom error details to Flutter via a thrown PlatformException. + * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class FlutterError ( - val code: String, - override val message: String? = null, - val details: Any? = null +class FlutterError( + val code: String, + override val message: String? = null, + val details: Any? = null ) : Throwable() enum class Code(val raw: Int) { @@ -60,12 +57,11 @@ enum class Code(val raw: Int) { } /** Generated class from Pigeon that represents data sent in messages. */ -data class MessageData ( - val name: String? = null, - val description: String? = null, - val code: Code, - val data: Map - +data class MessageData( + val name: String? = null, + val description: String? = null, + val code: Code, + val data: Map ) { companion object { @Suppress("UNCHECKED_CAST") @@ -77,12 +73,13 @@ data class MessageData ( return MessageData(name, description, code, data) } } + fun toList(): List { return listOf( - name, - description, - code.raw, - data, + name, + description, + code.raw, + data, ) } } @@ -92,14 +89,13 @@ private object ExampleHostApiCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { - return (readValue(buffer) as? List)?.let { - MessageData.fromList(it) - } + return (readValue(buffer) as? List)?.let { MessageData.fromList(it) } } else -> super.readValueOfType(type, buffer) } } - override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { is MessageData -> { stream.write(128) @@ -113,19 +109,23 @@ private object ExampleHostApiCodec : StandardMessageCodec() { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ interface ExampleHostApi { fun getHostLanguage(): String + fun add(a: Long, b: Long): Long + fun sendMessage(message: MessageData, callback: (Result) -> Unit) companion object { /** The codec used by ExampleHostApi. */ - val codec: MessageCodec by lazy { - ExampleHostApiCodec - } + val codec: MessageCodec by lazy { ExampleHostApiCodec } /** Sets up an instance of `ExampleHostApi` to handle messages through the `binaryMessenger`. */ @Suppress("UNCHECKED_CAST") fun setUp(binaryMessenger: BinaryMessenger, api: ExampleHostApi?) { run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_example_package.ExampleHostApi.getHostLanguage", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_example_package.ExampleHostApi.getHostLanguage", + codec) if (api != null) { channel.setMessageHandler { _, reply -> var wrapped: List @@ -141,7 +141,11 @@ interface ExampleHostApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_example_package.ExampleHostApi.add", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_example_package.ExampleHostApi.add", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -160,7 +164,11 @@ interface ExampleHostApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_example_package.ExampleHostApi.sendMessage", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_example_package.ExampleHostApi.sendMessage", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -187,26 +195,30 @@ interface ExampleHostApi { class MessageFlutterApi(private val binaryMessenger: BinaryMessenger) { companion object { /** The codec used by MessageFlutterApi. */ - val codec: MessageCodec by lazy { - StandardMessageCodec() - } + val codec: MessageCodec by lazy { StandardMessageCodec() } } + fun flutterMethod(aStringArg: String?, callback: (Result) -> Unit) { val channelName = "dev.flutter.pigeon.pigeon_example_package.MessageFlutterApi.flutterMethod" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aStringArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as String - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt b/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt index 502644b5ef..47e2008276 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt @@ -1,7 +1,7 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// +// // Autogenerated from Pigeon, do not edit directly. // See also: https://pub.dev/packages/pigeon @@ -21,33 +21,31 @@ private fun wrapResult(result: Any?): List { private fun wrapError(exception: Throwable): List { if (exception is FlutterError) { - return listOf( - exception.code, - exception.message, - exception.details - ) + return listOf(exception.code, exception.message, exception.details) } else { return listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) - ) + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)) } } private fun createConnectionError(channelName: String): FlutterError { - return FlutterError("channel-error", "Unable to establish connection on channel: '$channelName'.", "")} + return FlutterError( + "channel-error", "Unable to establish connection on channel: '$channelName'.", "") +} /** * Error class for passing custom error details to Flutter via a thrown PlatformException. + * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class FlutterError ( - val code: String, - override val message: String? = null, - val details: Any? = null +class FlutterError( + val code: String, + override val message: String? = null, + val details: Any? = null ) : Throwable() enum class AnEnum(val raw: Int) { @@ -67,21 +65,20 @@ enum class AnEnum(val raw: Int) { * * Generated class from Pigeon that represents data sent in messages. */ -data class AllTypes ( - val aBool: Boolean, - val anInt: Long, - val anInt64: Long, - val aDouble: Double, - val aByteArray: ByteArray, - val a4ByteArray: IntArray, - val a8ByteArray: LongArray, - val aFloatArray: DoubleArray, - val aList: List, - val aMap: Map, - val anEnum: AnEnum, - val aString: String, - val anObject: Any - +data class AllTypes( + val aBool: Boolean, + val anInt: Long, + val anInt64: Long, + val aDouble: Double, + val aByteArray: ByteArray, + val a4ByteArray: IntArray, + val a8ByteArray: LongArray, + val aFloatArray: DoubleArray, + val aList: List, + val aMap: Map, + val anEnum: AnEnum, + val aString: String, + val anObject: Any ) { companion object { @Suppress("UNCHECKED_CAST") @@ -99,24 +96,38 @@ data class AllTypes ( val anEnum = AnEnum.ofRaw(list[10] as Int)!! val aString = list[11] as String val anObject = list[12] as Any - return AllTypes(aBool, anInt, anInt64, aDouble, aByteArray, a4ByteArray, a8ByteArray, aFloatArray, aList, aMap, anEnum, aString, anObject) + return AllTypes( + aBool, + anInt, + anInt64, + aDouble, + aByteArray, + a4ByteArray, + a8ByteArray, + aFloatArray, + aList, + aMap, + anEnum, + aString, + anObject) } } + fun toList(): List { return listOf( - aBool, - anInt, - anInt64, - aDouble, - aByteArray, - a4ByteArray, - a8ByteArray, - aFloatArray, - aList, - aMap, - anEnum.raw, - aString, - anObject, + aBool, + anInt, + anInt64, + aDouble, + aByteArray, + a4ByteArray, + a8ByteArray, + aFloatArray, + aList, + aMap, + anEnum.raw, + aString, + anObject, ) } } @@ -126,24 +137,23 @@ data class AllTypes ( * * Generated class from Pigeon that represents data sent in messages. */ -data class AllNullableTypes ( - val aNullableBool: Boolean? = null, - val aNullableInt: Long? = null, - val aNullableInt64: Long? = null, - val aNullableDouble: Double? = null, - val aNullableByteArray: ByteArray? = null, - val aNullable4ByteArray: IntArray? = null, - val aNullable8ByteArray: LongArray? = null, - val aNullableFloatArray: DoubleArray? = null, - val aNullableList: List? = null, - val aNullableMap: Map? = null, - val nullableNestedList: List?>? = null, - val nullableMapWithAnnotations: Map? = null, - val nullableMapWithObject: Map? = null, - val aNullableEnum: AnEnum? = null, - val aNullableString: String? = null, - val aNullableObject: Any? = null - +data class AllNullableTypes( + val aNullableBool: Boolean? = null, + val aNullableInt: Long? = null, + val aNullableInt64: Long? = null, + val aNullableDouble: Double? = null, + val aNullableByteArray: ByteArray? = null, + val aNullable4ByteArray: IntArray? = null, + val aNullable8ByteArray: LongArray? = null, + val aNullableFloatArray: DoubleArray? = null, + val aNullableList: List? = null, + val aNullableMap: Map? = null, + val nullableNestedList: List?>? = null, + val nullableMapWithAnnotations: Map? = null, + val nullableMapWithObject: Map? = null, + val aNullableEnum: AnEnum? = null, + val aNullableString: String? = null, + val aNullableObject: Any? = null ) { companion object { @Suppress("UNCHECKED_CAST") @@ -161,32 +171,47 @@ data class AllNullableTypes ( val nullableNestedList = list[10] as List?>? val nullableMapWithAnnotations = list[11] as Map? val nullableMapWithObject = list[12] as Map? - val aNullableEnum: AnEnum? = (list[13] as Int?)?.let { - AnEnum.ofRaw(it) - } + val aNullableEnum: AnEnum? = (list[13] as Int?)?.let { AnEnum.ofRaw(it) } val aNullableString = list[14] as String? val aNullableObject = list[15] - return AllNullableTypes(aNullableBool, aNullableInt, aNullableInt64, aNullableDouble, aNullableByteArray, aNullable4ByteArray, aNullable8ByteArray, aNullableFloatArray, aNullableList, aNullableMap, nullableNestedList, nullableMapWithAnnotations, nullableMapWithObject, aNullableEnum, aNullableString, aNullableObject) + return AllNullableTypes( + aNullableBool, + aNullableInt, + aNullableInt64, + aNullableDouble, + aNullableByteArray, + aNullable4ByteArray, + aNullable8ByteArray, + aNullableFloatArray, + aNullableList, + aNullableMap, + nullableNestedList, + nullableMapWithAnnotations, + nullableMapWithObject, + aNullableEnum, + aNullableString, + aNullableObject) } } + fun toList(): List { return listOf( - aNullableBool, - aNullableInt, - aNullableInt64, - aNullableDouble, - aNullableByteArray, - aNullable4ByteArray, - aNullable8ByteArray, - aNullableFloatArray, - aNullableList, - aNullableMap, - nullableNestedList, - nullableMapWithAnnotations, - nullableMapWithObject, - aNullableEnum?.raw, - aNullableString, - aNullableObject, + aNullableBool, + aNullableInt, + aNullableInt64, + aNullableDouble, + aNullableByteArray, + aNullable4ByteArray, + aNullable8ByteArray, + aNullableFloatArray, + aNullableList, + aNullableMap, + nullableNestedList, + nullableMapWithAnnotations, + nullableMapWithObject, + aNullableEnum?.raw, + aNullableString, + aNullableObject, ) } } @@ -194,31 +219,29 @@ data class AllNullableTypes ( /** * A class for testing nested class handling. * - * This is needed to test nested nullable and non-nullable classes, - * `AllNullableTypes` is non-nullable here as it is easier to instantiate - * than `AllTypes` when testing doesn't require both (ie. testing null classes). + * This is needed to test nested nullable and non-nullable classes, `AllNullableTypes` is + * non-nullable here as it is easier to instantiate than `AllTypes` when testing doesn't require + * both (ie. testing null classes). * * Generated class from Pigeon that represents data sent in messages. */ -data class AllClassesWrapper ( - val allNullableTypes: AllNullableTypes, - val allTypes: AllTypes? = null - +data class AllClassesWrapper( + val allNullableTypes: AllNullableTypes, + val allTypes: AllTypes? = null ) { companion object { @Suppress("UNCHECKED_CAST") fun fromList(list: List): AllClassesWrapper { val allNullableTypes = AllNullableTypes.fromList(list[0] as List) - val allTypes: AllTypes? = (list[1] as List?)?.let { - AllTypes.fromList(it) - } + val allTypes: AllTypes? = (list[1] as List?)?.let { AllTypes.fromList(it) } return AllClassesWrapper(allNullableTypes, allTypes) } } + fun toList(): List { return listOf( - allNullableTypes.toList(), - allTypes?.toList(), + allNullableTypes.toList(), + allTypes?.toList(), ) } } @@ -228,10 +251,8 @@ data class AllClassesWrapper ( * * Generated class from Pigeon that represents data sent in messages. */ -data class TestMessage ( - val testList: List? = null +data class TestMessage(val testList: List? = null) { -) { companion object { @Suppress("UNCHECKED_CAST") fun fromList(list: List): TestMessage { @@ -239,9 +260,10 @@ data class TestMessage ( return TestMessage(testList) } } + fun toList(): List { return listOf( - testList, + testList, ) } } @@ -251,29 +273,22 @@ private object HostIntegrationCoreApiCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { - return (readValue(buffer) as? List)?.let { - AllClassesWrapper.fromList(it) - } + return (readValue(buffer) as? List)?.let { AllClassesWrapper.fromList(it) } } 129.toByte() -> { - return (readValue(buffer) as? List)?.let { - AllNullableTypes.fromList(it) - } + return (readValue(buffer) as? List)?.let { AllNullableTypes.fromList(it) } } 130.toByte() -> { - return (readValue(buffer) as? List)?.let { - AllTypes.fromList(it) - } + return (readValue(buffer) as? List)?.let { AllTypes.fromList(it) } } 131.toByte() -> { - return (readValue(buffer) as? List)?.let { - TestMessage.fromList(it) - } + return (readValue(buffer) as? List)?.let { TestMessage.fromList(it) } } else -> super.readValueOfType(type, buffer) } } - override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { is AllClassesWrapper -> { stream.write(128) @@ -297,16 +312,13 @@ private object HostIntegrationCoreApiCodec : StandardMessageCodec() { } /** - * The core interface that each host language plugin must implement in - * platform_test integration tests. + * The core interface that each host language plugin must implement in platform_test integration + * tests. * * Generated interface from Pigeon that represents a handler of messages from Flutter. */ interface HostIntegrationCoreApi { - /** - * A no-op function taking no arguments and returning no value, to sanity - * test basic calling. - */ + /** A no-op function taking no arguments and returning no value, to sanity test basic calling. */ fun noop() /** Returns the passed object, to test serialization and deserialization. */ fun echoAllTypes(everything: AllTypes): AllTypes @@ -339,17 +351,19 @@ interface HostIntegrationCoreApi { /** Returns the passed object, to test serialization and deserialization. */ fun echoAllNullableTypes(everything: AllNullableTypes?): AllNullableTypes? /** - * Returns the inner `aString` value from the wrapped object, to test - * sending of nested objects. + * Returns the inner `aString` value from the wrapped object, to test sending of nested objects. */ fun extractNestedNullableString(wrapper: AllClassesWrapper): String? /** - * Returns the inner `aString` value from the wrapped object, to test - * sending of nested objects. + * Returns the inner `aString` value from the wrapped object, to test sending of nested objects. */ fun createNestedNullableString(nullableString: String?): AllClassesWrapper /** Returns passed in arguments of multiple types. */ - fun sendMultipleNullableTypes(aNullableBool: Boolean?, aNullableInt: Long?, aNullableString: String?): AllNullableTypes + fun sendMultipleNullableTypes( + aNullableBool: Boolean?, + aNullableInt: Long?, + aNullableString: String? + ): AllNullableTypes /** Returns passed in int. */ fun echoNullableInt(aNullableInt: Long?): Long? /** Returns passed in double. */ @@ -366,10 +380,11 @@ interface HostIntegrationCoreApi { fun echoNullableList(aNullableList: List?): List? /** Returns the passed map, to test serialization and deserialization. */ fun echoNullableMap(aNullableMap: Map?): Map? + fun echoNullableEnum(anEnum: AnEnum?): AnEnum? /** - * A no-op function taking no arguments and returning no value, to sanity - * test basic asynchronous calling. + * A no-op function taking no arguments and returning no value, to sanity test basic asynchronous + * calling. */ fun noopAsync(callback: (Result) -> Unit) /** Returns passed in int asynchronously. */ @@ -399,7 +414,10 @@ interface HostIntegrationCoreApi { /** Returns the passed object, to test async serialization and deserialization. */ fun echoAsyncAllTypes(everything: AllTypes, callback: (Result) -> Unit) /** Returns the passed object, to test serialization and deserialization. */ - fun echoAsyncNullableAllNullableTypes(everything: AllNullableTypes?, callback: (Result) -> Unit) + fun echoAsyncNullableAllNullableTypes( + everything: AllNullableTypes?, + callback: (Result) -> Unit + ) /** Returns passed in int asynchronously. */ fun echoAsyncNullableInt(anInt: Long?, callback: (Result) -> Unit) /** Returns passed in double asynchronously. */ @@ -415,42 +433,83 @@ interface HostIntegrationCoreApi { /** Returns the passed list, to test asynchronous serialization and deserialization. */ fun echoAsyncNullableList(aList: List?, callback: (Result?>) -> Unit) /** Returns the passed map, to test asynchronous serialization and deserialization. */ - fun echoAsyncNullableMap(aMap: Map?, callback: (Result?>) -> Unit) + fun echoAsyncNullableMap( + aMap: Map?, + callback: (Result?>) -> Unit + ) /** Returns the passed enum, to test asynchronous serialization and deserialization. */ fun echoAsyncNullableEnum(anEnum: AnEnum?, callback: (Result) -> Unit) + fun callFlutterNoop(callback: (Result) -> Unit) + fun callFlutterThrowError(callback: (Result) -> Unit) + fun callFlutterThrowErrorFromVoid(callback: (Result) -> Unit) + fun callFlutterEchoAllTypes(everything: AllTypes, callback: (Result) -> Unit) - fun callFlutterEchoAllNullableTypes(everything: AllNullableTypes?, callback: (Result) -> Unit) - fun callFlutterSendMultipleNullableTypes(aNullableBool: Boolean?, aNullableInt: Long?, aNullableString: String?, callback: (Result) -> Unit) + + fun callFlutterEchoAllNullableTypes( + everything: AllNullableTypes?, + callback: (Result) -> Unit + ) + + fun callFlutterSendMultipleNullableTypes( + aNullableBool: Boolean?, + aNullableInt: Long?, + aNullableString: String?, + callback: (Result) -> Unit + ) + fun callFlutterEchoBool(aBool: Boolean, callback: (Result) -> Unit) + fun callFlutterEchoInt(anInt: Long, callback: (Result) -> Unit) + fun callFlutterEchoDouble(aDouble: Double, callback: (Result) -> Unit) + fun callFlutterEchoString(aString: String, callback: (Result) -> Unit) + fun callFlutterEchoUint8List(aList: ByteArray, callback: (Result) -> Unit) + fun callFlutterEchoList(aList: List, callback: (Result>) -> Unit) + fun callFlutterEchoMap(aMap: Map, callback: (Result>) -> Unit) + fun callFlutterEchoEnum(anEnum: AnEnum, callback: (Result) -> Unit) + fun callFlutterEchoNullableBool(aBool: Boolean?, callback: (Result) -> Unit) + fun callFlutterEchoNullableInt(anInt: Long?, callback: (Result) -> Unit) + fun callFlutterEchoNullableDouble(aDouble: Double?, callback: (Result) -> Unit) + fun callFlutterEchoNullableString(aString: String?, callback: (Result) -> Unit) + fun callFlutterEchoNullableUint8List(aList: ByteArray?, callback: (Result) -> Unit) + fun callFlutterEchoNullableList(aList: List?, callback: (Result?>) -> Unit) - fun callFlutterEchoNullableMap(aMap: Map?, callback: (Result?>) -> Unit) + + fun callFlutterEchoNullableMap( + aMap: Map?, + callback: (Result?>) -> Unit + ) + fun callFlutterEchoNullableEnum(anEnum: AnEnum?, callback: (Result) -> Unit) companion object { /** The codec used by HostIntegrationCoreApi. */ - val codec: MessageCodec by lazy { - HostIntegrationCoreApiCodec - } - /** Sets up an instance of `HostIntegrationCoreApi` to handle messages through the `binaryMessenger`. */ + val codec: MessageCodec by lazy { HostIntegrationCoreApiCodec } + /** + * Sets up an instance of `HostIntegrationCoreApi` to handle messages through the + * `binaryMessenger`. + */ @Suppress("UNCHECKED_CAST") fun setUp(binaryMessenger: BinaryMessenger, api: HostIntegrationCoreApi?) { run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.noop", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.noop", + codec) if (api != null) { channel.setMessageHandler { _, reply -> var wrapped: List @@ -467,7 +526,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAllTypes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAllTypes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -485,7 +548,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwError", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwError", + codec) if (api != null) { channel.setMessageHandler { _, reply -> var wrapped: List @@ -501,7 +568,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwErrorFromVoid", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwErrorFromVoid", + codec) if (api != null) { channel.setMessageHandler { _, reply -> var wrapped: List @@ -518,7 +589,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwFlutterError", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwFlutterError", + codec) if (api != null) { channel.setMessageHandler { _, reply -> var wrapped: List @@ -534,7 +609,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoInt", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoInt", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -552,7 +631,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoDouble", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoDouble", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -570,7 +653,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoBool", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoBool", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -588,7 +675,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoString", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoString", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -606,7 +697,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoUint8List", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoUint8List", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -624,7 +719,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoObject", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoObject", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -642,7 +741,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoList", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoList", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -660,7 +763,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoMap", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoMap", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -678,7 +785,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoClassWrapper", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoClassWrapper", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -696,7 +807,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoEnum", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoEnum", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -714,7 +829,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAllNullableTypes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAllNullableTypes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -732,7 +851,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.extractNestedNullableString", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.extractNestedNullableString", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -750,7 +873,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.createNestedNullableString", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.createNestedNullableString", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -768,7 +895,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.sendMultipleNullableTypes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.sendMultipleNullableTypes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -777,7 +908,10 @@ interface HostIntegrationCoreApi { val aNullableStringArg = args[2] as String? var wrapped: List try { - wrapped = listOf(api.sendMultipleNullableTypes(aNullableBoolArg, aNullableIntArg, aNullableStringArg)) + wrapped = + listOf( + api.sendMultipleNullableTypes( + aNullableBoolArg, aNullableIntArg, aNullableStringArg)) } catch (exception: Throwable) { wrapped = wrapError(exception) } @@ -788,7 +922,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableInt", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableInt", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -806,7 +944,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableDouble", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableDouble", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -824,7 +966,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableBool", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableBool", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -842,7 +988,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableString", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableString", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -860,7 +1010,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableUint8List", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableUint8List", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -878,7 +1032,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableObject", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableObject", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -896,7 +1054,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableList", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableList", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -914,7 +1076,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableMap", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableMap", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -932,7 +1098,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableEnum", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoNullableEnum", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -950,7 +1120,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.noopAsync", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.noopAsync", + codec) if (api != null) { channel.setMessageHandler { _, reply -> api.noopAsync() { result: Result -> @@ -967,7 +1141,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncInt", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncInt", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -987,7 +1165,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncDouble", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncDouble", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1007,7 +1189,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncBool", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncBool", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1027,7 +1213,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncString", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncString", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1047,7 +1237,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncUint8List", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncUint8List", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1067,7 +1261,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncObject", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncObject", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1087,7 +1285,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncList", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncList", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1107,7 +1309,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncMap", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncMap", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1127,7 +1333,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncEnum", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncEnum", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1147,7 +1357,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwAsyncError", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwAsyncError", + codec) if (api != null) { channel.setMessageHandler { _, reply -> api.throwAsyncError() { result: Result -> @@ -1165,7 +1379,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwAsyncErrorFromVoid", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwAsyncErrorFromVoid", + codec) if (api != null) { channel.setMessageHandler { _, reply -> api.throwAsyncErrorFromVoid() { result: Result -> @@ -1182,7 +1400,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwAsyncFlutterError", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.throwAsyncFlutterError", + codec) if (api != null) { channel.setMessageHandler { _, reply -> api.throwAsyncFlutterError() { result: Result -> @@ -1200,7 +1422,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncAllTypes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncAllTypes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1220,12 +1446,17 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableAllNullableTypes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableAllNullableTypes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val everythingArg = args[0] as AllNullableTypes? - api.echoAsyncNullableAllNullableTypes(everythingArg) { result: Result -> + api.echoAsyncNullableAllNullableTypes(everythingArg) { result: Result + -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -1240,7 +1471,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableInt", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableInt", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1260,7 +1495,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableDouble", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableDouble", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1280,7 +1519,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableBool", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableBool", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1300,7 +1543,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableString", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableString", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1320,7 +1567,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableUint8List", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableUint8List", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1340,7 +1591,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableObject", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableObject", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1360,7 +1615,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableList", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableList", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1380,7 +1639,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableMap", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableMap", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1400,7 +1663,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableEnum", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.echoAsyncNullableEnum", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1420,7 +1687,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterNoop", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterNoop", + codec) if (api != null) { channel.setMessageHandler { _, reply -> api.callFlutterNoop() { result: Result -> @@ -1437,7 +1708,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterThrowError", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterThrowError", + codec) if (api != null) { channel.setMessageHandler { _, reply -> api.callFlutterThrowError() { result: Result -> @@ -1455,7 +1730,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterThrowErrorFromVoid", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterThrowErrorFromVoid", + codec) if (api != null) { channel.setMessageHandler { _, reply -> api.callFlutterThrowErrorFromVoid() { result: Result -> @@ -1472,7 +1751,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoAllTypes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoAllTypes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1492,12 +1775,17 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoAllNullableTypes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoAllNullableTypes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val everythingArg = args[0] as AllNullableTypes? - api.callFlutterEchoAllNullableTypes(everythingArg) { result: Result -> + api.callFlutterEchoAllNullableTypes(everythingArg) { result: Result + -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -1512,29 +1800,39 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterSendMultipleNullableTypes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterSendMultipleNullableTypes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val aNullableBoolArg = args[0] as Boolean? val aNullableIntArg = args[1].let { if (it is Int) it.toLong() else it as Long? } val aNullableStringArg = args[2] as String? - api.callFlutterSendMultipleNullableTypes(aNullableBoolArg, aNullableIntArg, aNullableStringArg) { result: Result -> - val error = result.exceptionOrNull() - if (error != null) { - reply.reply(wrapError(error)) - } else { - val data = result.getOrNull() - reply.reply(wrapResult(data)) - } - } + api.callFlutterSendMultipleNullableTypes( + aNullableBoolArg, aNullableIntArg, aNullableStringArg) { + result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(wrapError(error)) + } else { + val data = result.getOrNull() + reply.reply(wrapResult(data)) + } + } } } else { channel.setMessageHandler(null) } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoBool", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoBool", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1554,7 +1852,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoInt", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoInt", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1574,7 +1876,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoDouble", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoDouble", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1594,7 +1900,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoString", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoString", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1614,7 +1924,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoUint8List", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoUint8List", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1634,7 +1948,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoList", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoList", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1654,7 +1972,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoMap", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoMap", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1674,7 +1996,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoEnum", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoEnum", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1694,7 +2020,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableBool", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableBool", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1714,7 +2044,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableInt", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableInt", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1734,7 +2068,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableDouble", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableDouble", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1754,7 +2092,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableString", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableString", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1774,7 +2116,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableUint8List", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableUint8List", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1794,7 +2140,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableList", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableList", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1814,7 +2164,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableMap", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableMap", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1834,7 +2188,11 @@ interface HostIntegrationCoreApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableEnum", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostIntegrationCoreApi.callFlutterEchoNullableEnum", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -1856,34 +2214,28 @@ interface HostIntegrationCoreApi { } } } + @Suppress("UNCHECKED_CAST") private object FlutterIntegrationCoreApiCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { - return (readValue(buffer) as? List)?.let { - AllClassesWrapper.fromList(it) - } + return (readValue(buffer) as? List)?.let { AllClassesWrapper.fromList(it) } } 129.toByte() -> { - return (readValue(buffer) as? List)?.let { - AllNullableTypes.fromList(it) - } + return (readValue(buffer) as? List)?.let { AllNullableTypes.fromList(it) } } 130.toByte() -> { - return (readValue(buffer) as? List)?.let { - AllTypes.fromList(it) - } + return (readValue(buffer) as? List)?.let { AllTypes.fromList(it) } } 131.toByte() -> { - return (readValue(buffer) as? List)?.let { - TestMessage.fromList(it) - } + return (readValue(buffer) as? List)?.let { TestMessage.fromList(it) } } else -> super.readValueOfType(type, buffer) } } - override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { is AllClassesWrapper -> { stream.write(128) @@ -1907,8 +2259,8 @@ private object FlutterIntegrationCoreApiCodec : StandardMessageCodec() { } /** - * The core interface that the Dart platform_test code implements for host - * integration tests to call into. + * The core interface that the Dart platform_test code implements for host integration tests to call + * into. * * Generated class from Pigeon that represents Flutter messages that can be called from Kotlin. */ @@ -1916,96 +2268,103 @@ private object FlutterIntegrationCoreApiCodec : StandardMessageCodec() { class FlutterIntegrationCoreApi(private val binaryMessenger: BinaryMessenger) { companion object { /** The codec used by FlutterIntegrationCoreApi. */ - val codec: MessageCodec by lazy { - FlutterIntegrationCoreApiCodec - } + val codec: MessageCodec by lazy { FlutterIntegrationCoreApiCodec } } - /** - * A no-op function taking no arguments and returning no value, to sanity - * test basic calling. - */ + /** A no-op function taking no arguments and returning no value, to sanity test basic calling. */ fun noop(callback: (Result) -> Unit) { val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.noop" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(null) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { - callback(Result.success(Unit)); + callback(Result.success(Unit)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Responds with an error from an async function returning a value. */ fun throwError(callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.throwError" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.throwError" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(null) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { val output = it[0] - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Responds with an error from an async void function. */ fun throwErrorFromVoid(callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.throwErrorFromVoid" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.throwErrorFromVoid" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(null) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { - callback(Result.success(Unit)); + callback(Result.success(Unit)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed object, to test serialization and deserialization. */ fun echoAllTypes(everythingArg: AllTypes, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoAllTypes" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoAllTypes" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(everythingArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as AllTypes - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed object, to test serialization and deserialization. */ - fun echoAllNullableTypes(everythingArg: AllNullableTypes?, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoAllNullableTypes" + fun echoAllNullableTypes( + everythingArg: AllNullableTypes?, + callback: (Result) -> Unit + ) { + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoAllNullableTypes" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(everythingArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { val output = it[0] as AllNullableTypes? - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** @@ -2013,350 +2372,425 @@ class FlutterIntegrationCoreApi(private val binaryMessenger: BinaryMessenger) { * * Tests multiple-arity FlutterApi handling. */ - fun sendMultipleNullableTypes(aNullableBoolArg: Boolean?, aNullableIntArg: Long?, aNullableStringArg: String?, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.sendMultipleNullableTypes" + fun sendMultipleNullableTypes( + aNullableBoolArg: Boolean?, + aNullableIntArg: Long?, + aNullableStringArg: String?, + callback: (Result) -> Unit + ) { + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.sendMultipleNullableTypes" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aNullableBoolArg, aNullableIntArg, aNullableStringArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as AllNullableTypes - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed boolean, to test serialization and deserialization. */ fun echoBool(aBoolArg: Boolean, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoBool" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoBool" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aBoolArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as Boolean - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed int, to test serialization and deserialization. */ fun echoInt(anIntArg: Long, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoInt" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoInt" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(anIntArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0].let { if (it is Int) it.toLong() else it as Long } - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed double, to test serialization and deserialization. */ fun echoDouble(aDoubleArg: Double, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoDouble" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoDouble" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aDoubleArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as Double - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed string, to test serialization and deserialization. */ fun echoString(aStringArg: String, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoString" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoString" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aStringArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as String - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed byte list, to test serialization and deserialization. */ fun echoUint8List(aListArg: ByteArray, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoUint8List" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoUint8List" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aListArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as ByteArray - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed list, to test serialization and deserialization. */ fun echoList(aListArg: List, callback: (Result>) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoList" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoList" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aListArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as List - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed map, to test serialization and deserialization. */ fun echoMap(aMapArg: Map, callback: (Result>) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoMap" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoMap" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aMapArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as Map - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed enum to test serialization and deserialization. */ fun echoEnum(anEnumArg: AnEnum, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoEnum" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoEnum" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(anEnumArg.raw)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = AnEnum.ofRaw(it[0] as Int)!! - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed boolean, to test serialization and deserialization. */ fun echoNullableBool(aBoolArg: Boolean?, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableBool" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableBool" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aBoolArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { val output = it[0] as Boolean? - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed int, to test serialization and deserialization. */ fun echoNullableInt(anIntArg: Long?, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableInt" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableInt" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(anIntArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { val output = it[0].let { if (it is Int) it.toLong() else it as Long? } - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed double, to test serialization and deserialization. */ fun echoNullableDouble(aDoubleArg: Double?, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableDouble" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableDouble" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aDoubleArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { val output = it[0] as Double? - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed string, to test serialization and deserialization. */ fun echoNullableString(aStringArg: String?, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableString" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableString" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aStringArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { val output = it[0] as String? - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed byte list, to test serialization and deserialization. */ fun echoNullableUint8List(aListArg: ByteArray?, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableUint8List" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableUint8List" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aListArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { val output = it[0] as ByteArray? - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed list, to test serialization and deserialization. */ fun echoNullableList(aListArg: List?, callback: (Result?>) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableList" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableList" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aListArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { val output = it[0] as List? - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed map, to test serialization and deserialization. */ - fun echoNullableMap(aMapArg: Map?, callback: (Result?>) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableMap" + fun echoNullableMap( + aMapArg: Map?, + callback: (Result?>) -> Unit + ) { + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableMap" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aMapArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { val output = it[0] as Map? - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed enum to test serialization and deserialization. */ fun echoNullableEnum(anEnumArg: AnEnum?, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableEnum" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoNullableEnum" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(anEnumArg?.raw)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { - val output = (it[0] as Int?)?.let { - AnEnum.ofRaw(it) - } - callback(Result.success(output)); + val output = (it[0] as Int?)?.let { AnEnum.ofRaw(it) } + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** - * A no-op function taking no arguments and returning no value, to sanity - * test basic asynchronous calling. + * A no-op function taking no arguments and returning no value, to sanity test basic asynchronous + * calling. */ fun noopAsync(callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.noopAsync" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.noopAsync" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(null) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else { - callback(Result.success(Unit)); + callback(Result.success(Unit)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } /** Returns the passed in generic Object asynchronously. */ fun echoAsyncString(aStringArg: String, callback: (Result) -> Unit) { - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoAsyncString" + val channelName = + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoAsyncString" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aStringArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as String - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } } @@ -2370,14 +2804,16 @@ interface HostTrivialApi { companion object { /** The codec used by HostTrivialApi. */ - val codec: MessageCodec by lazy { - StandardMessageCodec() - } + val codec: MessageCodec by lazy { StandardMessageCodec() } /** Sets up an instance of `HostTrivialApi` to handle messages through the `binaryMessenger`. */ @Suppress("UNCHECKED_CAST") fun setUp(binaryMessenger: BinaryMessenger, api: HostTrivialApi?) { run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostTrivialApi.noop", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostTrivialApi.noop", + codec) if (api != null) { channel.setMessageHandler { _, reply -> var wrapped: List @@ -2403,18 +2839,21 @@ interface HostTrivialApi { */ interface HostSmallApi { fun echo(aString: String, callback: (Result) -> Unit) + fun voidVoid(callback: (Result) -> Unit) companion object { /** The codec used by HostSmallApi. */ - val codec: MessageCodec by lazy { - StandardMessageCodec() - } + val codec: MessageCodec by lazy { StandardMessageCodec() } /** Sets up an instance of `HostSmallApi` to handle messages through the `binaryMessenger`. */ @Suppress("UNCHECKED_CAST") fun setUp(binaryMessenger: BinaryMessenger, api: HostSmallApi?) { run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.echo", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.echo", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -2434,7 +2873,11 @@ interface HostSmallApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.voidVoid", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.voidVoid", + codec) if (api != null) { channel.setMessageHandler { _, reply -> api.voidVoid() { result: Result -> @@ -2453,19 +2896,19 @@ interface HostSmallApi { } } } + @Suppress("UNCHECKED_CAST") private object FlutterSmallApiCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { - return (readValue(buffer) as? List)?.let { - TestMessage.fromList(it) - } + return (readValue(buffer) as? List)?.let { TestMessage.fromList(it) } } else -> super.readValueOfType(type, buffer) } } - override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { is TestMessage -> { stream.write(128) @@ -2485,44 +2928,54 @@ private object FlutterSmallApiCodec : StandardMessageCodec() { class FlutterSmallApi(private val binaryMessenger: BinaryMessenger) { companion object { /** The codec used by FlutterSmallApi. */ - val codec: MessageCodec by lazy { - FlutterSmallApiCodec - } + val codec: MessageCodec by lazy { FlutterSmallApiCodec } } + fun echoWrappedList(msgArg: TestMessage, callback: (Result) -> Unit) { val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterSmallApi.echoWrappedList" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(msgArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as TestMessage - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } + fun echoString(aStringArg: String, callback: (Result) -> Unit) { val channelName = "dev.flutter.pigeon.pigeon_integration_tests.FlutterSmallApi.echoString" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(aStringArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))); + callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) } else if (it[0] == null) { - callback(Result.failure(FlutterError("null-error", "Flutter api returned null value for non-null return value.", ""))); + callback( + Result.failure( + FlutterError( + "null-error", + "Flutter api returned null value for non-null return value.", + ""))) } else { val output = it[0] as String - callback(Result.success(output)); + callback(Result.success(output)) } } else { - callback(Result.failure(createConnectionError(channelName))); - } + callback(Result.failure(createConnectionError(channelName))) + } } } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/TestPlugin.kt b/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/TestPlugin.kt index 28f85bb544..a534517098 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/TestPlugin.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/TestPlugin.kt @@ -5,17 +5,10 @@ package com.example.test_plugin import androidx.annotation.NonNull - import io.flutter.embedding.engine.plugins.FlutterPlugin -import io.flutter.plugin.common.MethodCall -import io.flutter.plugin.common.MethodChannel -import io.flutter.plugin.common.MethodChannel.MethodCallHandler -/** - * This plugin handles the native side of the integration tests in - * example/integration_test/. - */ -class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { +/** This plugin handles the native side of the integration tests in example/integration_test/. */ +class TestPlugin : FlutterPlugin, HostIntegrationCoreApi { var flutterApi: FlutterIntegrationCoreApi? = null override fun onAttachedToEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) { @@ -23,13 +16,11 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { flutterApi = FlutterIntegrationCoreApi(binding.getBinaryMessenger()) } - override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) { - } + override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {} // HostIntegrationCoreApi - override fun noop() { - } + override fun noop() {} override fun echoAllTypes(everything: AllTypes): AllTypes { return everything @@ -40,15 +31,15 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { } override fun throwError(): Any? { - throw Exception("An error"); + throw Exception("An error") } override fun throwErrorFromVoid() { - throw Exception("An error"); + throw Exception("An error") } override fun throwFlutterError(): Any? { - throw FlutterError("code", "message", "details"); + throw FlutterError("code", "message", "details") } override fun echoInt(anInt: Long): Long { @@ -99,8 +90,15 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { return AllClassesWrapper(AllNullableTypes(aNullableString = nullableString)) } - override fun sendMultipleNullableTypes(aNullableBool: Boolean?, aNullableInt: Long?, aNullableString: String?): AllNullableTypes { - return AllNullableTypes(aNullableBool = aNullableBool, aNullableInt = aNullableInt, aNullableString = aNullableString) + override fun sendMultipleNullableTypes( + aNullableBool: Boolean?, + aNullableInt: Long?, + aNullableString: String? + ): AllNullableTypes { + return AllNullableTypes( + aNullableBool = aNullableBool, + aNullableInt = aNullableInt, + aNullableString = aNullableString) } override fun echoNullableInt(aNullableInt: Long?): Long? { @@ -159,7 +157,10 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { callback(Result.success(everything)) } - override fun echoAsyncNullableAllNullableTypes(everything: AllNullableTypes?, callback: (Result) -> Unit) { + override fun echoAsyncNullableAllNullableTypes( + everything: AllNullableTypes?, + callback: (Result) -> Unit + ) { callback(Result.success(everything)) } @@ -191,7 +192,10 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { callback(Result.success(aList)) } - override fun echoAsyncMap(aMap: Map, callback: (Result>) -> Unit) { + override fun echoAsyncMap( + aMap: Map, + callback: (Result>) -> Unit + ) { callback(Result.success(aMap)) } @@ -215,7 +219,10 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { callback(Result.success(aString)) } - override fun echoAsyncNullableUint8List(aUint8List: ByteArray?, callback: (Result) -> Unit) { + override fun echoAsyncNullableUint8List( + aUint8List: ByteArray?, + callback: (Result) -> Unit + ) { callback(Result.success(aUint8List)) } @@ -227,7 +234,10 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { callback(Result.success(aList)) } - override fun echoAsyncNullableMap(aMap: Map?, callback: (Result?>) -> Unit) { + override fun echoAsyncNullableMap( + aMap: Map?, + callback: (Result?>) -> Unit + ) { callback(Result.success(aMap)) } @@ -242,6 +252,7 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { override fun callFlutterThrowError(callback: (Result) -> Unit) { flutterApi!!.throwError() { result -> callback(result) } } + override fun callFlutterThrowErrorFromVoid(callback: (Result) -> Unit) { flutterApi!!.throwErrorFromVoid() { result -> callback(result) } } @@ -251,13 +262,13 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { } override fun callFlutterSendMultipleNullableTypes( - aNullableBool: Boolean?, - aNullableInt: Long?, - aNullableString: String?, - callback: (Result) -> Unit + aNullableBool: Boolean?, + aNullableInt: Long?, + aNullableString: String?, + callback: (Result) -> Unit ) { - flutterApi!!.sendMultipleNullableTypes(aNullableBool, aNullableInt, aNullableString) { - echo -> callback(echo) + flutterApi!!.sendMultipleNullableTypes(aNullableBool, aNullableInt, aNullableString) { echo -> + callback(echo) } } @@ -281,11 +292,14 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { flutterApi!!.echoUint8List(aList) { echo -> callback(echo) } } - override fun callFlutterEchoList(aList: List, callback: (Result>) -> Unit){ + override fun callFlutterEchoList(aList: List, callback: (Result>) -> Unit) { flutterApi!!.echoList(aList) { echo -> callback(echo) } } - override fun callFlutterEchoMap(aMap: Map, callback: (Result>) -> Unit) { + override fun callFlutterEchoMap( + aMap: Map, + callback: (Result>) -> Unit + ) { flutterApi!!.echoMap(aMap) { echo -> callback(echo) } } @@ -293,7 +307,10 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { flutterApi!!.echoEnum(anEnum) { echo -> callback(echo) } } - override fun callFlutterEchoAllNullableTypes(everything: AllNullableTypes?, callback: (Result) -> Unit) { + override fun callFlutterEchoAllNullableTypes( + everything: AllNullableTypes?, + callback: (Result) -> Unit + ) { flutterApi!!.echoAllNullableTypes(everything) { echo -> callback(echo) } } @@ -305,28 +322,42 @@ class TestPlugin: FlutterPlugin, HostIntegrationCoreApi { flutterApi!!.echoNullableInt(anInt) { echo -> callback(echo) } } - override fun callFlutterEchoNullableDouble(aDouble: Double?, callback: (Result) -> Unit) { + override fun callFlutterEchoNullableDouble( + aDouble: Double?, + callback: (Result) -> Unit + ) { flutterApi!!.echoNullableDouble(aDouble) { echo -> callback(echo) } } - override fun callFlutterEchoNullableString(aString: String?, callback: (Result) -> Unit) { + override fun callFlutterEchoNullableString( + aString: String?, + callback: (Result) -> Unit + ) { flutterApi!!.echoNullableString(aString) { echo -> callback(echo) } } - override fun callFlutterEchoNullableUint8List(aList: ByteArray?, callback: (Result) -> Unit) { + override fun callFlutterEchoNullableUint8List( + aList: ByteArray?, + callback: (Result) -> Unit + ) { flutterApi!!.echoNullableUint8List(aList) { echo -> callback(echo) } } - override fun callFlutterEchoNullableList(aList: List?, callback: (Result?>) -> Unit) { + override fun callFlutterEchoNullableList( + aList: List?, + callback: (Result?>) -> Unit + ) { flutterApi!!.echoNullableList(aList) { echo -> callback(echo) } } - override fun callFlutterEchoNullableMap(aMap: Map?, callback: (Result?>) -> Unit) { + override fun callFlutterEchoNullableMap( + aMap: Map?, + callback: (Result?>) -> Unit + ) { flutterApi!!.echoNullableMap(aMap) { echo -> callback(echo) } } override fun callFlutterEchoNullableEnum(anEnum: AnEnum?, callback: (Result) -> Unit) { flutterApi!!.echoNullableEnum(anEnum) { echo -> callback(echo) } } - } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/AllDatatypesTest.kt b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/AllDatatypesTest.kt index 01c3577619..7a506d3d13 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/AllDatatypesTest.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/AllDatatypesTest.kt @@ -7,95 +7,96 @@ package com.example.test_plugin import io.flutter.plugin.common.BinaryMessenger import io.mockk.every import io.mockk.mockk -import junit.framework.TestCase -import org.junit.Test import java.nio.ByteBuffer import java.util.ArrayList +import junit.framework.TestCase +import org.junit.Test +internal class AllDatatypesTest : TestCase() { + fun compareAllTypes(firstTypes: AllTypes?, secondTypes: AllTypes?) { + assertEquals(firstTypes == null, secondTypes == null) + if (firstTypes == null || secondTypes == null) { + return + } + assertEquals(firstTypes.aBool, secondTypes.aBool) + assertEquals(firstTypes.anInt, secondTypes.anInt) + assertEquals(firstTypes.anInt64, secondTypes.anInt64) + assertEquals(firstTypes.aDouble, secondTypes.aDouble) + assertEquals(firstTypes.aString, secondTypes.aString) + assertTrue(firstTypes.aByteArray.contentEquals(secondTypes.aByteArray)) + assertTrue(firstTypes.a4ByteArray.contentEquals(secondTypes.a4ByteArray)) + assertTrue(firstTypes.a8ByteArray.contentEquals(secondTypes.a8ByteArray)) + assertTrue(firstTypes.aFloatArray.contentEquals(secondTypes.aFloatArray)) + assertEquals(firstTypes.aList, secondTypes.aList) + assertEquals(firstTypes.aMap, secondTypes.aMap) + assertEquals(firstTypes.anEnum, secondTypes.anEnum) + assertEquals(firstTypes.anObject, secondTypes.anObject) + } -internal class AllDatatypesTest: TestCase() { - fun compareAllTypes(firstTypes: AllTypes?, secondTypes: AllTypes?) { - assertEquals(firstTypes == null, secondTypes == null) - if (firstTypes == null || secondTypes == null) { - return + fun compareAllNullableTypes(firstTypes: AllNullableTypes?, secondTypes: AllNullableTypes?) { + assertEquals(firstTypes == null, secondTypes == null) + if (firstTypes == null || secondTypes == null) { + return + } + assertEquals(firstTypes.aNullableBool, secondTypes.aNullableBool) + assertEquals(firstTypes.aNullableInt, secondTypes.aNullableInt) + assertEquals(firstTypes.aNullableDouble, secondTypes.aNullableDouble) + assertEquals(firstTypes.aNullableString, secondTypes.aNullableString) + assertTrue(firstTypes.aNullableByteArray.contentEquals(secondTypes.aNullableByteArray)) + assertTrue(firstTypes.aNullable4ByteArray.contentEquals(secondTypes.aNullable4ByteArray)) + assertTrue(firstTypes.aNullable8ByteArray.contentEquals(secondTypes.aNullable8ByteArray)) + assertTrue(firstTypes.aNullableFloatArray.contentEquals(secondTypes.aNullableFloatArray)) + assertEquals(firstTypes.aNullableList, secondTypes.aNullableList) + assertEquals(firstTypes.aNullableMap, secondTypes.aNullableMap) + assertEquals(firstTypes.nullableMapWithObject, secondTypes.nullableMapWithObject) + assertEquals(firstTypes.aNullableObject, secondTypes.aNullableObject) + } + + @Test + fun testNullValues() { + val everything = AllNullableTypes() + val binaryMessenger = mockk() + val api = FlutterIntegrationCoreApi(binaryMessenger) + + every { binaryMessenger.send(any(), any(), any()) } answers + { + val codec = FlutterIntegrationCoreApi.codec + val message = arg(1) + val reply = arg(2) + message.position(0) + val args = codec.decodeMessage(message) as ArrayList<*> + val replyData = codec.encodeMessage(args) + replyData?.position(0) + reply.reply(replyData) } - assertEquals(firstTypes.aBool, secondTypes.aBool) - assertEquals(firstTypes.anInt, secondTypes.anInt) - assertEquals(firstTypes.anInt64, secondTypes.anInt64) - assertEquals(firstTypes.aDouble, secondTypes.aDouble) - assertEquals(firstTypes.aString, secondTypes.aString) - assertTrue(firstTypes.aByteArray.contentEquals(secondTypes.aByteArray)) - assertTrue(firstTypes.a4ByteArray.contentEquals(secondTypes.a4ByteArray)) - assertTrue(firstTypes.a8ByteArray.contentEquals(secondTypes.a8ByteArray)) - assertTrue(firstTypes.aFloatArray.contentEquals(secondTypes.aFloatArray)) - assertEquals(firstTypes.aList, secondTypes.aList) - assertEquals(firstTypes.aMap, secondTypes.aMap) - assertEquals(firstTypes.anEnum, secondTypes.anEnum) - assertEquals(firstTypes.anObject, secondTypes.anObject) + + var didCall = false + api.echoAllNullableTypes(everything) { + didCall = true + val output = + (it.getOrNull())?.let { + assertNull(it.aNullableBool) + assertNull(it.aNullableInt) + assertNull(it.aNullableDouble) + assertNull(it.aNullableString) + assertNull(it.aNullableByteArray) + assertNull(it.aNullable4ByteArray) + assertNull(it.aNullable8ByteArray) + assertNull(it.aNullableFloatArray) + assertNull(it.aNullableList) + assertNull(it.aNullableMap) + assertNull(it.nullableMapWithObject) + } + assertNotNull(output) } - fun compareAllNullableTypes(firstTypes: AllNullableTypes?, secondTypes: AllNullableTypes?) { - assertEquals(firstTypes == null, secondTypes == null) - if (firstTypes == null || secondTypes == null) { - return - } - assertEquals(firstTypes.aNullableBool, secondTypes.aNullableBool) - assertEquals(firstTypes.aNullableInt, secondTypes.aNullableInt) - assertEquals(firstTypes.aNullableDouble, secondTypes.aNullableDouble) - assertEquals(firstTypes.aNullableString, secondTypes.aNullableString) - assertTrue(firstTypes.aNullableByteArray.contentEquals(secondTypes.aNullableByteArray)) - assertTrue(firstTypes.aNullable4ByteArray.contentEquals(secondTypes.aNullable4ByteArray)) - assertTrue(firstTypes.aNullable8ByteArray.contentEquals(secondTypes.aNullable8ByteArray)) - assertTrue(firstTypes.aNullableFloatArray.contentEquals(secondTypes.aNullableFloatArray)) - assertEquals(firstTypes.aNullableList, secondTypes.aNullableList) - assertEquals(firstTypes.aNullableMap, secondTypes.aNullableMap) - assertEquals(firstTypes.nullableMapWithObject, secondTypes.nullableMapWithObject) - assertEquals(firstTypes.aNullableObject, secondTypes.aNullableObject) - } + assertTrue(didCall) + } - @Test - fun testNullValues() { - val everything = AllNullableTypes() - val binaryMessenger = mockk() - val api = FlutterIntegrationCoreApi(binaryMessenger) - - every { binaryMessenger.send(any(), any(), any()) } answers { - val codec = FlutterIntegrationCoreApi.codec - val message = arg(1) - val reply = arg(2) - message.position(0) - val args = codec.decodeMessage(message) as ArrayList<*> - val replyData = codec.encodeMessage(args) - replyData?.position(0) - reply.reply(replyData) - } - - var didCall = false - api.echoAllNullableTypes(everything) { - didCall = true - val output = (it.getOrNull())?.let { - assertNull(it.aNullableBool) - assertNull(it.aNullableInt) - assertNull(it.aNullableDouble) - assertNull(it.aNullableString) - assertNull(it.aNullableByteArray) - assertNull(it.aNullable4ByteArray) - assertNull(it.aNullable8ByteArray) - assertNull(it.aNullableFloatArray) - assertNull(it.aNullableList) - assertNull(it.aNullableMap) - assertNull(it.nullableMapWithObject) - } - assertNotNull(output) - - } - - assertTrue(didCall) - } - - @Test - fun testHasValues() { - val everything = AllNullableTypes( + @Test + fun testHasValues() { + val everything = + AllNullableTypes( aNullableBool = false, aNullableInt = 1234L, aNullableDouble = 2.0, @@ -109,41 +110,59 @@ internal class AllDatatypesTest: TestCase() { nullableMapWithObject = mapOf("hello" to 1234), aNullableObject = 0, ) - val binaryMessenger = mockk() - val api = FlutterIntegrationCoreApi(binaryMessenger) + val binaryMessenger = mockk() + val api = FlutterIntegrationCoreApi(binaryMessenger) - every { binaryMessenger.send(any(), any(), any()) } answers { - val codec = FlutterIntegrationCoreApi.codec - val message = arg(1) - val reply = arg(2) - message.position(0) - val args = codec.decodeMessage(message) as ArrayList<*> - val replyData = codec.encodeMessage(args) - replyData?.position(0) - reply.reply(replyData) + every { binaryMessenger.send(any(), any(), any()) } answers + { + val codec = FlutterIntegrationCoreApi.codec + val message = arg(1) + val reply = arg(2) + message.position(0) + val args = codec.decodeMessage(message) as ArrayList<*> + val replyData = codec.encodeMessage(args) + replyData?.position(0) + reply.reply(replyData) } - var didCall = false - api.echoAllNullableTypes(everything) { - didCall = true - compareAllNullableTypes(everything, it.getOrNull()) - } - - assertTrue(didCall) + var didCall = false + api.echoAllNullableTypes(everything) { + didCall = true + compareAllNullableTypes(everything, it.getOrNull()) } - @Test - fun testIntegerToLong() { - val everything = AllNullableTypes(aNullableInt = 123L) - val list = everything.toList() - assertNotNull(list) - assertNull(list.first()) - assertNotNull(list[1]) - assertTrue(list[1] == 123L) + assertTrue(didCall) + } - val list2 = listOf(null, 123, null, null, null, null, null, null, null, null, null, null, null, null, null, null) - val everything2 = AllNullableTypes.fromList(list2) + @Test + fun testIntegerToLong() { + val everything = AllNullableTypes(aNullableInt = 123L) + val list = everything.toList() + assertNotNull(list) + assertNull(list.first()) + assertNotNull(list[1]) + assertTrue(list[1] == 123L) - assertEquals(everything.aNullableInt, everything2.aNullableInt) - } + val list2 = + listOf( + null, + 123, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null) + val everything2 = AllNullableTypes.fromList(list2) + + assertEquals(everything.aNullableInt, everything2.aNullableInt) + } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/AsyncHandlersTest.kt b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/AsyncHandlersTest.kt index daaeba3fb3..d42c62fefc 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/AsyncHandlersTest.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/AsyncHandlersTest.kt @@ -9,116 +9,115 @@ import io.mockk.every import io.mockk.mockk import io.mockk.slot import io.mockk.verify +import java.nio.ByteBuffer import junit.framework.TestCase import org.junit.Test -import java.nio.ByteBuffer +internal class AsyncHandlersTest : TestCase() { + @Test + fun testAsyncHost2Flutter() { + val binaryMessenger = mockk() + val api = FlutterIntegrationCoreApi(binaryMessenger) -internal class AsyncHandlersTest: TestCase() { - @Test - fun testAsyncHost2Flutter() { - val binaryMessenger = mockk() - val api = FlutterIntegrationCoreApi(binaryMessenger) + val value = "Test" - val value = "Test" - - every { binaryMessenger.send(any(), any(), any()) } answers { - val codec = FlutterIntegrationCoreApi.codec - val message = arg(1) - val reply = arg(2) - message.position(0) - val replyData = codec.encodeMessage(listOf(value)) - replyData?.position(0) - reply.reply(replyData) + every { binaryMessenger.send(any(), any(), any()) } answers + { + val codec = FlutterIntegrationCoreApi.codec + val message = arg(1) + val reply = arg(2) + message.position(0) + val replyData = codec.encodeMessage(listOf(value)) + replyData?.position(0) + reply.reply(replyData) } - var didCall = false - api.echoAsyncString(value) { - didCall = true - assertEquals(it.getOrNull(), value) - } - - assertTrue(didCall) - - verify { - binaryMessenger.send( - "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoAsyncString", - any(), - any() - ) - } + var didCall = false + api.echoAsyncString(value) { + didCall = true + assertEquals(it.getOrNull(), value) } - @Test - fun testAsyncFlutter2HostEcho() { - val binaryMessenger = mockk() - val api = mockk() + assertTrue(didCall) - val handlerSlot = slot() + verify { + binaryMessenger.send( + "dev.flutter.pigeon.pigeon_integration_tests.FlutterIntegrationCoreApi.echoAsyncString", + any(), + any()) + } + } - val input = "Test" - val output = input - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.echo" + @Test + fun testAsyncFlutter2HostEcho() { + val binaryMessenger = mockk() + val api = mockk() - every { - binaryMessenger.setMessageHandler("dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.voidVoid", any()) - } returns Unit - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.echo(any(), any()) } answers { - val callback = arg<(Result) -> Unit>(1) - callback(Result.success(output)) + val handlerSlot = slot() + + val input = "Test" + val output = input + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.echo" + + every { + binaryMessenger.setMessageHandler( + "dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.voidVoid", any()) + } returns Unit + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.echo(any(), any()) } answers + { + val callback = arg<(Result) -> Unit>(1) + callback(Result.success(output)) } - HostSmallApi.setUp(binaryMessenger, api) + HostSmallApi.setUp(binaryMessenger, api) - val codec = HostSmallApi.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - assertNotNull(it) - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as MutableList? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(output, wrapped.first()) - } - } - - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.echo(input, any()) } + val codec = HostSmallApi.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + assertNotNull(it) + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as MutableList? + assertNotNull(wrapped) + wrapped?.let { assertEquals(output, wrapped.first()) } } - @Test - fun asyncFlutter2HostVoidVoid() { - val binaryMessenger = mockk() - val api = mockk() + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.echo(input, any()) } + } - val handlerSlot = slot() + @Test + fun asyncFlutter2HostVoidVoid() { + val binaryMessenger = mockk() + val api = mockk() - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.voidVoid" + val handlerSlot = slot() - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { - binaryMessenger.setMessageHandler("dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.echo", any()) - } returns Unit - every { api.voidVoid(any()) } answers { - val callback = arg<() -> Unit>(0) - callback() + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.voidVoid" + + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { + binaryMessenger.setMessageHandler( + "dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.echo", any()) + } returns Unit + every { api.voidVoid(any()) } answers + { + val callback = arg<() -> Unit>(0) + callback() } - HostSmallApi.setUp(binaryMessenger, api) + HostSmallApi.setUp(binaryMessenger, api) - val codec = HostSmallApi.codec - val message = codec.encodeMessage(null) - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as MutableList? - assertNull(wrapped) - } - - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.voidVoid(any()) } + val codec = HostSmallApi.codec + val message = codec.encodeMessage(null) + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as MutableList? + assertNull(wrapped) } + + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.voidVoid(any()) } + } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/EchoBinaryMessenger.kt b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/EchoBinaryMessenger.kt index 7d0a793091..0d42ec6edd 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/EchoBinaryMessenger.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/EchoBinaryMessenger.kt @@ -6,33 +6,23 @@ package com.example.test_plugin import io.flutter.plugin.common.BinaryMessenger import io.flutter.plugin.common.MessageCodec -import io.flutter.plugin.common.StandardMessageCodec import java.nio.ByteBuffer import java.util.ArrayList +internal class EchoBinaryMessenger(private val codec: MessageCodec) : BinaryMessenger { + override fun send(channel: String, message: ByteBuffer?) { + // Method not implemented because this messenger is just for echoing. + } -internal class EchoBinaryMessenger(private val codec: MessageCodec): BinaryMessenger { - override fun send(channel: String, message: ByteBuffer?) { - // Method not implemented because this messenger is just for echoing. - } - - override fun send( - channel: String, - message: ByteBuffer?, - callback: BinaryMessenger.BinaryReply? - ) { - message?.rewind() - val args = codec.decodeMessage(message) as ArrayList<*> - val replyData = codec.encodeMessage(args) - replyData?.position(0) - callback?.reply(replyData) - } - - override fun setMessageHandler( - channel: String, - handler: BinaryMessenger.BinaryMessageHandler? - ) { - // Method not implemented because this messenger is just for echoing. - } + override fun send(channel: String, message: ByteBuffer?, callback: BinaryMessenger.BinaryReply?) { + message?.rewind() + val args = codec.decodeMessage(message) as ArrayList<*> + val replyData = codec.encodeMessage(args) + replyData?.position(0) + callback?.reply(replyData) + } + override fun setMessageHandler(channel: String, handler: BinaryMessenger.BinaryMessageHandler?) { + // Method not implemented because this messenger is just for echoing. + } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/EnumTest.kt b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/EnumTest.kt index 97315caf64..8e78e7abd2 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/EnumTest.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/EnumTest.kt @@ -9,69 +9,69 @@ import io.mockk.every import io.mockk.mockk import io.mockk.slot import io.mockk.verify -import junit.framework.TestCase -import org.junit.Test import java.nio.ByteBuffer import java.util.ArrayList +import junit.framework.TestCase +import org.junit.Test -internal class EnumTest: TestCase() { - @Test - fun testEchoHost() { - val binaryMessenger = mockk() - val api = mockk() +internal class EnumTest : TestCase() { + @Test + fun testEchoHost() { + val binaryMessenger = mockk() + val api = mockk() - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.EnumApi2Host.echo" - val input = DataWithEnum(EnumState.SUCCESS) + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.EnumApi2Host.echo" + val input = DataWithEnum(EnumState.SUCCESS) - val handlerSlot = slot() + val handlerSlot = slot() - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.echo(any()) } returnsArgument 0 + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.echo(any()) } returnsArgument 0 - EnumApi2Host.setUp(binaryMessenger, api) + EnumApi2Host.setUp(binaryMessenger, api) - val codec = EnumApi2Host.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertNotNull(wrapped[0]) - assertEquals(input, wrapped[0]) - } - } - - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.echo(input) } + val codec = EnumApi2Host.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { + assertNotNull(wrapped[0]) + assertEquals(input, wrapped[0]) + } } - @Test - fun testEchoFlutter() { - val binaryMessenger = mockk() - val api = EnumApi2Flutter(binaryMessenger) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.echo(input) } + } - val input = DataWithEnum(EnumState.SUCCESS) + @Test + fun testEchoFlutter() { + val binaryMessenger = mockk() + val api = EnumApi2Flutter(binaryMessenger) - every { binaryMessenger.send(any(), any(), any()) } answers { - val codec = EnumApi2Flutter.codec - val message = arg(1) - val reply = arg(2) - message.position(0) - val args = codec.decodeMessage(message) as ArrayList<*> - val replyData = codec.encodeMessage(args) - replyData?.position(0) - reply.reply(replyData) + val input = DataWithEnum(EnumState.SUCCESS) + + every { binaryMessenger.send(any(), any(), any()) } answers + { + val codec = EnumApi2Flutter.codec + val message = arg(1) + val reply = arg(2) + message.position(0) + val args = codec.decodeMessage(message) as ArrayList<*> + val replyData = codec.encodeMessage(args) + replyData?.position(0) + reply.reply(replyData) } - var didCall = false - api.echo(input) { - didCall = true - assertEquals(input, it.getOrNull()) - } - - assertTrue(didCall) + var didCall = false + api.echo(input) { + didCall = true + assertEquals(input, it.getOrNull()) } + + assertTrue(didCall) + } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/ListTest.kt b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/ListTest.kt index 6f6f94576c..923cc3b90e 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/ListTest.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/ListTest.kt @@ -7,37 +7,38 @@ package com.example.test_plugin import io.flutter.plugin.common.BinaryMessenger import io.mockk.every import io.mockk.mockk -import junit.framework.TestCase -import org.junit.Test import java.nio.ByteBuffer import java.util.ArrayList +import junit.framework.TestCase +import org.junit.Test -class ListTest: TestCase() { - @Test - fun testListInList() { - val binaryMessenger = mockk() - val api = FlutterSmallApi(binaryMessenger) +class ListTest : TestCase() { + @Test + fun testListInList() { + val binaryMessenger = mockk() + val api = FlutterSmallApi(binaryMessenger) - val inside = TestMessage(listOf(1, 2, 3)) - val input = TestMessage(listOf(inside)) + val inside = TestMessage(listOf(1, 2, 3)) + val input = TestMessage(listOf(inside)) - every { binaryMessenger.send(any(), any(), any()) } answers { - val codec = FlutterSmallApi.codec - val message = arg(1) - val reply = arg(2) - message.position(0) - val args = codec.decodeMessage(message) as ArrayList<*> - val replyData = codec.encodeMessage(args) - replyData?.position(0) - reply.reply(replyData) + every { binaryMessenger.send(any(), any(), any()) } answers + { + val codec = FlutterSmallApi.codec + val message = arg(1) + val reply = arg(2) + message.position(0) + val args = codec.decodeMessage(message) as ArrayList<*> + val replyData = codec.encodeMessage(args) + replyData?.position(0) + reply.reply(replyData) } - var didCall = false - api.echoWrappedList(input) { - didCall = true - assertEquals(input, it.getOrNull()) - } - - assertTrue(didCall) + var didCall = false + api.echoWrappedList(input) { + didCall = true + assertEquals(input, it.getOrNull()) } + + assertTrue(didCall) + } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/MultipleArityTests.kt b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/MultipleArityTests.kt index 0bdc9ebb14..27925a308a 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/MultipleArityTests.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/MultipleArityTests.kt @@ -8,69 +8,67 @@ import io.flutter.plugin.common.BinaryMessenger import io.mockk.every import io.mockk.mockk import io.mockk.slot -import junit.framework.TestCase -import org.junit.Test import java.nio.ByteBuffer import java.util.ArrayList +import junit.framework.TestCase +import org.junit.Test -class MultipleArityTests: TestCase() { - @Test - fun testSimpleHost() { - val binaryMessenger = mockk() - val api = mockk() +class MultipleArityTests : TestCase() { + @Test + fun testSimpleHost() { + val binaryMessenger = mockk() + val api = mockk() - val inputX = 10L - val inputY = 5L + val inputX = 10L + val inputY = 5L - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.MultipleArityHostApi.subtract" - val handlerSlot = slot() + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.MultipleArityHostApi.subtract" + val handlerSlot = slot() - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.subtract(any(), any()) } answers { firstArg() - secondArg() } + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.subtract(any(), any()) } answers { firstArg() - secondArg() } - MultipleArityHostApi.setUp(binaryMessenger, api) + MultipleArityHostApi.setUp(binaryMessenger, api) - val codec = MultipleArityHostApi.codec - val message = codec.encodeMessage(listOf(inputX, inputY)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(inputX - inputY, wrapped[0]) - } + val codec = MultipleArityHostApi.codec + val message = codec.encodeMessage(listOf(inputX, inputY)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertEquals(inputX - inputY, wrapped[0]) } + } + } + + @Test + fun testSimpleFlutter() { + val binaryMessenger = mockk() + val api = MultipleArityFlutterApi(binaryMessenger) + + val inputX = 10L + val inputY = 5L + + every { binaryMessenger.send(any(), any(), any()) } answers + { + val codec = MultipleArityFlutterApi.codec + val message = arg(1) + val reply = arg(2) + message.position(0) + val args = codec.decodeMessage(message) as ArrayList<*> + val argX = args[0] as Long + val argY = args[1] as Long + val replyData = codec.encodeMessage(listOf(argX - argY)) + replyData?.position(0) + reply.reply(replyData) } + + var didCall = false + api.subtract(inputX, inputY) { + didCall = true + assertEquals(inputX - inputY, it.getOrNull()) } - @Test - fun testSimpleFlutter() { - val binaryMessenger = mockk() - val api = MultipleArityFlutterApi(binaryMessenger) - - val inputX = 10L - val inputY = 5L - - every { binaryMessenger.send(any(), any(), any()) } answers { - val codec = MultipleArityFlutterApi.codec - val message = arg(1) - val reply = arg(2) - message.position(0) - val args = codec.decodeMessage(message) as ArrayList<*> - val argX = args[0] as Long - val argY = args[1] as Long - val replyData = codec.encodeMessage(listOf(argX - argY)) - replyData?.position(0) - reply.reply(replyData) - } - - var didCall = false - api.subtract(inputX, inputY) { - didCall = true - assertEquals(inputX - inputY, it.getOrNull()) - } - - assertTrue(didCall) - } + assertTrue(didCall) + } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/NonNullFieldsTests.kt b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/NonNullFieldsTests.kt index efa699fb18..c5357af1b7 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/NonNullFieldsTests.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/NonNullFieldsTests.kt @@ -7,10 +7,10 @@ package com.example.test_plugin import junit.framework.TestCase import org.junit.Test -class NonNullFieldsTests: TestCase() { - @Test - fun testMake() { - val request = NonNullFieldSearchRequest("hello") - assertEquals("hello", request.query) - } +class NonNullFieldsTests : TestCase() { + @Test + fun testMake() { + val request = NonNullFieldSearchRequest("hello") + assertEquals("hello", request.query) + } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/NullableReturnsTest.kt b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/NullableReturnsTest.kt index e2dcfade4e..a1f6b52558 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/NullableReturnsTest.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/NullableReturnsTest.kt @@ -12,60 +12,58 @@ import io.mockk.verify import junit.framework.TestCase import org.junit.Test -class NullableReturnsTest: TestCase() { - @Test - fun testNullableParameterHost() { - val binaryMessenger = mockk(relaxed = true) - val api = mockk(relaxed = true) +class NullableReturnsTest : TestCase() { + @Test + fun testNullableParameterHost() { + val binaryMessenger = mockk(relaxed = true) + val api = mockk(relaxed = true) - val output = 1L + val output = 1L - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.NullableReturnHostApi.doit" - val handlerSlot = slot() + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.NullableReturnHostApi.doit" + val handlerSlot = slot() - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.doit() } returns output + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.doit() } returns output - NullableReturnHostApi.setUp(binaryMessenger, api) + NullableReturnHostApi.setUp(binaryMessenger, api) - val codec = PrimitiveHostApi.codec - val message = codec.encodeMessage(null) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(output, wrapped[0]) - } - } - - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.doit() } + val codec = PrimitiveHostApi.codec + val message = codec.encodeMessage(null) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertEquals(output, wrapped[0]) } } - @Test - fun testNullableParameterFlutter() { - val binaryMessenger = mockk() - val api = NullableReturnFlutterApi(binaryMessenger) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.doit() } + } - val output = 12L + @Test + fun testNullableParameterFlutter() { + val binaryMessenger = mockk() + val api = NullableReturnFlutterApi(binaryMessenger) - every { binaryMessenger.send(any(), any(), any()) } answers { - val codec = NullableReturnFlutterApi.codec - val reply = arg(2) - val replyData = codec.encodeMessage(listOf(output)) - replyData?.position(0) - reply.reply(replyData) + val output = 12L + + every { binaryMessenger.send(any(), any(), any()) } answers + { + val codec = NullableReturnFlutterApi.codec + val reply = arg(2) + val replyData = codec.encodeMessage(listOf(output)) + replyData?.position(0) + reply.reply(replyData) } - var didCall = false - api.doit { - didCall = true - assertEquals(output, it.getOrNull()) - } - - assertTrue(didCall) + var didCall = false + api.doit { + didCall = true + assertEquals(output, it.getOrNull()) } + + assertTrue(didCall) + } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/PrimitiveTest.kt b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/PrimitiveTest.kt index e25402c388..a883b6b032 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/PrimitiveTest.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/test/kotlin/com/example/test_plugin/PrimitiveTest.kt @@ -11,424 +11,394 @@ import io.mockk.slot import io.mockk.verify import junit.framework.TestCase import org.junit.Test -import java.nio.ByteBuffer -import java.util.ArrayList -class PrimitiveTest: TestCase() { - @Test - fun testIntPrimitiveHost() { - val binaryMessenger = mockk(relaxed = true) - val api = mockk(relaxed = true) +class PrimitiveTest : TestCase() { + @Test + fun testIntPrimitiveHost() { + val binaryMessenger = mockk(relaxed = true) + val api = mockk(relaxed = true) - val input = 1 + val input = 1 - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.anInt" - val handlerSlot = slot() + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.anInt" + val handlerSlot = slot() - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.anInt(any()) } returnsArgument 0 + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.anInt(any()) } returnsArgument 0 - PrimitiveHostApi.setUp(binaryMessenger, api) + PrimitiveHostApi.setUp(binaryMessenger, api) - val codec = PrimitiveHostApi.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(input.toLong(), wrapped[0]) - } - } - - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.anInt(input.toLong()) } + val codec = PrimitiveHostApi.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertEquals(input.toLong(), wrapped[0]) } } - @Test - fun testIntPrimitiveFlutter() { - val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) - val api = PrimitiveFlutterApi(binaryMessenger) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.anInt(input.toLong()) } + } - val input = 1L + @Test + fun testIntPrimitiveFlutter() { + val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) + val api = PrimitiveFlutterApi(binaryMessenger) - var didCall = false - api.anInt(input) { - didCall = true - assertEquals(input, it.getOrNull()) - } + val input = 1L - assertTrue(didCall) + var didCall = false + api.anInt(input) { + didCall = true + assertEquals(input, it.getOrNull()) } - @Test - fun testBoolPrimitiveHost() { - val binaryMessenger = mockk(relaxed = true) - val api = mockk(relaxed = true) + assertTrue(didCall) + } - val input = true + @Test + fun testBoolPrimitiveHost() { + val binaryMessenger = mockk(relaxed = true) + val api = mockk(relaxed = true) - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aBool" - val handlerSlot = slot() + val input = true - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.aBool(any()) } returnsArgument 0 + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aBool" + val handlerSlot = slot() - PrimitiveHostApi.setUp(binaryMessenger, api) + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.aBool(any()) } returnsArgument 0 - val codec = PrimitiveHostApi.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(input, wrapped[0]) - } - } + PrimitiveHostApi.setUp(binaryMessenger, api) - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.aBool(input) } + val codec = PrimitiveHostApi.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertEquals(input, wrapped[0]) } } - @Test - fun testBoolPrimitiveFlutter() { - val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) - val api = PrimitiveFlutterApi(binaryMessenger) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.aBool(input) } + } - val input = true + @Test + fun testBoolPrimitiveFlutter() { + val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) + val api = PrimitiveFlutterApi(binaryMessenger) - var didCall = false - api.aBool(input) { - didCall = true - assertEquals(input, it.getOrNull()) - } + val input = true - assertTrue(didCall) + var didCall = false + api.aBool(input) { + didCall = true + assertEquals(input, it.getOrNull()) } - @Test - fun testStringPrimitiveHost() { - val binaryMessenger = mockk(relaxed = true) - val api = mockk(relaxed = true) + assertTrue(didCall) + } - val input = "Hello" + @Test + fun testStringPrimitiveHost() { + val binaryMessenger = mockk(relaxed = true) + val api = mockk(relaxed = true) - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aString" - val handlerSlot = slot() + val input = "Hello" - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.aString(any()) } returnsArgument 0 + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aString" + val handlerSlot = slot() - PrimitiveHostApi.setUp(binaryMessenger, api) + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.aString(any()) } returnsArgument 0 - val codec = PrimitiveHostApi.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(input, wrapped[0]) - } - } + PrimitiveHostApi.setUp(binaryMessenger, api) - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.aString(input) } + val codec = PrimitiveHostApi.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertEquals(input, wrapped[0]) } } - @Test - fun testDoublePrimitiveHost() { - val binaryMessenger = mockk(relaxed = true) - val api = mockk(relaxed = true) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.aString(input) } + } - val input = 1.0 + @Test + fun testDoublePrimitiveHost() { + val binaryMessenger = mockk(relaxed = true) + val api = mockk(relaxed = true) - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aDouble" - val handlerSlot = slot() + val input = 1.0 - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.aDouble(any()) } returnsArgument 0 + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aDouble" + val handlerSlot = slot() - PrimitiveHostApi.setUp(binaryMessenger, api) + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.aDouble(any()) } returnsArgument 0 - val codec = PrimitiveHostApi.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(input, wrapped[0]) - } - } + PrimitiveHostApi.setUp(binaryMessenger, api) - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.aDouble(input) } + val codec = PrimitiveHostApi.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertEquals(input, wrapped[0]) } } - @Test - fun testDoublePrimitiveFlutter() { - val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) - val api = PrimitiveFlutterApi(binaryMessenger) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.aDouble(input) } + } - val input = 1.0 + @Test + fun testDoublePrimitiveFlutter() { + val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) + val api = PrimitiveFlutterApi(binaryMessenger) - var didCall = false - api.aDouble(input) { - didCall = true - assertEquals(input, it.getOrNull()) - } + val input = 1.0 - assertTrue(didCall) + var didCall = false + api.aDouble(input) { + didCall = true + assertEquals(input, it.getOrNull()) } - @Test - fun testMapPrimitiveHost() { - val binaryMessenger = mockk(relaxed = true) - val api = mockk(relaxed = true) + assertTrue(didCall) + } - val input = mapOf("a" to 1, "b" to 2) + @Test + fun testMapPrimitiveHost() { + val binaryMessenger = mockk(relaxed = true) + val api = mockk(relaxed = true) - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aMap" - val handlerSlot = slot() + val input = mapOf("a" to 1, "b" to 2) - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.aMap(any()) } returnsArgument 0 + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aMap" + val handlerSlot = slot() - PrimitiveHostApi.setUp(binaryMessenger, api) + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.aMap(any()) } returnsArgument 0 - val codec = PrimitiveHostApi.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(input, wrapped[0]) - } - } + PrimitiveHostApi.setUp(binaryMessenger, api) - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.aMap(input) } + val codec = PrimitiveHostApi.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertEquals(input, wrapped[0]) } } - @Test - fun testMapPrimitiveFlutter() { - val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) - val api = PrimitiveFlutterApi(binaryMessenger) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.aMap(input) } + } - val input = mapOf("a" to 1, "b" to 2) + @Test + fun testMapPrimitiveFlutter() { + val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) + val api = PrimitiveFlutterApi(binaryMessenger) - var didCall = false - api.aMap(input) { - didCall = true - assertEquals(input, it.getOrNull()) - } + val input = mapOf("a" to 1, "b" to 2) - assertTrue(didCall) + var didCall = false + api.aMap(input) { + didCall = true + assertEquals(input, it.getOrNull()) } - @Test - fun testListPrimitiveHost() { - val binaryMessenger = mockk(relaxed = true) - val api = mockk(relaxed = true) + assertTrue(didCall) + } - val input = listOf(1, 2, 3) + @Test + fun testListPrimitiveHost() { + val binaryMessenger = mockk(relaxed = true) + val api = mockk(relaxed = true) - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aList" - val handlerSlot = slot() + val input = listOf(1, 2, 3) - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.aList(any()) } returnsArgument 0 + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aList" + val handlerSlot = slot() - PrimitiveHostApi.setUp(binaryMessenger, api) + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.aList(any()) } returnsArgument 0 - val codec = PrimitiveHostApi.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(input, wrapped[0]) - } - } + PrimitiveHostApi.setUp(binaryMessenger, api) - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.aList(input) } + val codec = PrimitiveHostApi.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertEquals(input, wrapped[0]) } } - @Test - fun testListPrimitiveFlutter() { - val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) - val api = PrimitiveFlutterApi(binaryMessenger) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.aList(input) } + } - val input = listOf(1, 2, 3) + @Test + fun testListPrimitiveFlutter() { + val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) + val api = PrimitiveFlutterApi(binaryMessenger) - var didCall = false - api.aList(input) { - didCall = true - assertEquals(input, it.getOrNull()) - } + val input = listOf(1, 2, 3) - assertTrue(didCall) + var didCall = false + api.aList(input) { + didCall = true + assertEquals(input, it.getOrNull()) } - @Test - fun testInt32ListPrimitiveHost() { - val binaryMessenger = mockk(relaxed = true) - val api = mockk(relaxed = true) + assertTrue(didCall) + } - val input = intArrayOf(1, 2, 3) + @Test + fun testInt32ListPrimitiveHost() { + val binaryMessenger = mockk(relaxed = true) + val api = mockk(relaxed = true) - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.anInt32List" - val handlerSlot = slot() + val input = intArrayOf(1, 2, 3) - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.anInt32List(any()) } returnsArgument 0 + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.anInt32List" + val handlerSlot = slot() - PrimitiveHostApi.setUp(binaryMessenger, api) + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.anInt32List(any()) } returnsArgument 0 - val codec = PrimitiveHostApi.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertTrue(input.contentEquals(wrapped[0] as IntArray)) - } - } + PrimitiveHostApi.setUp(binaryMessenger, api) - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.anInt32List(input) } + val codec = PrimitiveHostApi.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertTrue(input.contentEquals(wrapped[0] as IntArray)) } } - @Test - fun testInt32ListPrimitiveFlutter() { - val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) - val api = PrimitiveFlutterApi(binaryMessenger) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.anInt32List(input) } + } - val input = intArrayOf(1, 2, 3) + @Test + fun testInt32ListPrimitiveFlutter() { + val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) + val api = PrimitiveFlutterApi(binaryMessenger) - var didCall = false - api.anInt32List(input) { - didCall = true - assertTrue(input.contentEquals(it.getOrNull())) - } + val input = intArrayOf(1, 2, 3) - assertTrue(didCall) + var didCall = false + api.anInt32List(input) { + didCall = true + assertTrue(input.contentEquals(it.getOrNull())) } - @Test - fun testBoolListPrimitiveHost() { - val binaryMessenger = mockk(relaxed = true) - val api = mockk(relaxed = true) + assertTrue(didCall) + } - val input = listOf(true, false, true) + @Test + fun testBoolListPrimitiveHost() { + val binaryMessenger = mockk(relaxed = true) + val api = mockk(relaxed = true) - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aBoolList" - val handlerSlot = slot() + val input = listOf(true, false, true) - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.aBoolList(any()) } returnsArgument 0 + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aBoolList" + val handlerSlot = slot() - PrimitiveHostApi.setUp(binaryMessenger, api) + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.aBoolList(any()) } returnsArgument 0 - val codec = PrimitiveHostApi.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(input, wrapped[0]) - } - } + PrimitiveHostApi.setUp(binaryMessenger, api) - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.aBoolList(input) } + val codec = PrimitiveHostApi.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertEquals(input, wrapped[0]) } } - @Test - fun testBoolListPrimitiveFlutter() { - val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) - val api = PrimitiveFlutterApi(binaryMessenger) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.aBoolList(input) } + } - val input = listOf(true, false, true) + @Test + fun testBoolListPrimitiveFlutter() { + val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) + val api = PrimitiveFlutterApi(binaryMessenger) - var didCall = false - api.aBoolList(input) { - didCall = true - assertEquals(input, it.getOrNull()) - } + val input = listOf(true, false, true) - assertTrue(didCall) + var didCall = false + api.aBoolList(input) { + didCall = true + assertEquals(input, it.getOrNull()) } - @Test - fun testStringIntMapPrimitiveHost() { - val binaryMessenger = mockk(relaxed = true) - val api = mockk(relaxed = true) + assertTrue(didCall) + } - val input = mapOf("a" to 1, "b" to 2) + @Test + fun testStringIntMapPrimitiveHost() { + val binaryMessenger = mockk(relaxed = true) + val api = mockk(relaxed = true) - val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aStringIntMap" - val handlerSlot = slot() + val input = mapOf("a" to 1, "b" to 2) - every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit - every { api.aStringIntMap(any()) } returnsArgument 0 + val channelName = "dev.flutter.pigeon.pigeon_integration_tests.PrimitiveHostApi.aStringIntMap" + val handlerSlot = slot() - PrimitiveHostApi.setUp(binaryMessenger, api) + every { binaryMessenger.setMessageHandler(channelName, capture(handlerSlot)) } returns Unit + every { api.aStringIntMap(any()) } returnsArgument 0 - val codec = PrimitiveHostApi.codec - val message = codec.encodeMessage(listOf(input)) - message?.rewind() - handlerSlot.captured.onMessage(message) { - it?.rewind() - @Suppress("UNCHECKED_CAST") - val wrapped = codec.decodeMessage(it) as List? - assertNotNull(wrapped) - wrapped?.let { - assertEquals(input, wrapped[0]) - } - } + PrimitiveHostApi.setUp(binaryMessenger, api) - verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } - verify { api.aStringIntMap(input) } + val codec = PrimitiveHostApi.codec + val message = codec.encodeMessage(listOf(input)) + message?.rewind() + handlerSlot.captured.onMessage(message) { + it?.rewind() + @Suppress("UNCHECKED_CAST") val wrapped = codec.decodeMessage(it) as List? + assertNotNull(wrapped) + wrapped?.let { assertEquals(input, wrapped[0]) } } - @Test - fun testStringIntMapPrimitiveFlutter() { - val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) - val api = PrimitiveFlutterApi(binaryMessenger) + verify { binaryMessenger.setMessageHandler(channelName, handlerSlot.captured) } + verify { api.aStringIntMap(input) } + } - val input = mapOf("a" to 1, "b" to 2) + @Test + fun testStringIntMapPrimitiveFlutter() { + val binaryMessenger = EchoBinaryMessenger(MultipleArityFlutterApi.codec) + val api = PrimitiveFlutterApi(binaryMessenger) - var didCall = false - api.aStringIntMap(input) { - didCall = true - assertEquals(input, it.getOrNull()) - } + val input = mapOf("a" to 1, "b" to 2) - assertTrue(didCall) + var didCall = false + api.aStringIntMap(input) { + didCall = true + assertEquals(input, it.getOrNull()) } + assertTrue(didCall) + } } diff --git a/packages/pigeon/platform_tests/test_plugin/example/android/app/src/main/kotlin/com/example/test_plugin_example/MainActivity.kt b/packages/pigeon/platform_tests/test_plugin/example/android/app/src/main/kotlin/com/example/test_plugin_example/MainActivity.kt index 0ab3e5c28d..2744a8264d 100644 --- a/packages/pigeon/platform_tests/test_plugin/example/android/app/src/main/kotlin/com/example/test_plugin_example/MainActivity.kt +++ b/packages/pigeon/platform_tests/test_plugin/example/android/app/src/main/kotlin/com/example/test_plugin_example/MainActivity.kt @@ -6,5 +6,4 @@ package com.example.test_plugin_example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/platform/example/android/app/src/main/kotlin/dev/flutter/plaform_example/MainActivity.kt b/packages/platform/example/android/app/src/main/kotlin/dev/flutter/plaform_example/MainActivity.kt index a22ae228f8..9a1d952b20 100644 --- a/packages/platform/example/android/app/src/main/kotlin/dev/flutter/plaform_example/MainActivity.kt +++ b/packages/platform/example/android/app/src/main/kotlin/dev/flutter/plaform_example/MainActivity.kt @@ -6,5 +6,4 @@ package dev.flutter.plaform_example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/rfw/example/hello/android/app/src/main/kotlin/dev/flutter/rfw/examples/hello/MainActivity.kt b/packages/rfw/example/hello/android/app/src/main/kotlin/dev/flutter/rfw/examples/hello/MainActivity.kt index 3154f4692c..d7019baeed 100644 --- a/packages/rfw/example/hello/android/app/src/main/kotlin/dev/flutter/rfw/examples/hello/MainActivity.kt +++ b/packages/rfw/example/hello/android/app/src/main/kotlin/dev/flutter/rfw/examples/hello/MainActivity.kt @@ -5,5 +5,4 @@ package dev.flutter.rfw.examples.hello import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/rfw/example/local/android/app/src/main/kotlin/dev/flutter/rfw/examples/local/MainActivity.kt b/packages/rfw/example/local/android/app/src/main/kotlin/dev/flutter/rfw/examples/local/MainActivity.kt index 9ec9ef59fd..d939f3fbbd 100644 --- a/packages/rfw/example/local/android/app/src/main/kotlin/dev/flutter/rfw/examples/local/MainActivity.kt +++ b/packages/rfw/example/local/android/app/src/main/kotlin/dev/flutter/rfw/examples/local/MainActivity.kt @@ -5,5 +5,4 @@ package dev.flutter.rfw.examples.local import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/rfw/example/remote/android/app/src/main/kotlin/dev/flutter/rfw/examples/remote/MainActivity.kt b/packages/rfw/example/remote/android/app/src/main/kotlin/dev/flutter/rfw/examples/remote/MainActivity.kt index e75fe88af3..21911770b2 100644 --- a/packages/rfw/example/remote/android/app/src/main/kotlin/dev/flutter/rfw/examples/remote/MainActivity.kt +++ b/packages/rfw/example/remote/android/app/src/main/kotlin/dev/flutter/rfw/examples/remote/MainActivity.kt @@ -5,5 +5,4 @@ package dev.flutter.rfw.examples.remote import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/packages/two_dimensional_scrollables/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt b/packages/two_dimensional_scrollables/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt index 56d56eee85..91a2d1d15f 100644 --- a/packages/two_dimensional_scrollables/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt +++ b/packages/two_dimensional_scrollables/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt @@ -6,5 +6,4 @@ package com.example.example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() {} diff --git a/script/tool/lib/src/format_command.dart b/script/tool/lib/src/format_command.dart index 0bd237186b..fab3d9cbeb 100644 --- a/script/tool/lib/src/format_command.dart +++ b/script/tool/lib/src/format_command.dart @@ -32,9 +32,12 @@ const int _exitJavaFormatFailed = 5; const int _exitGitFailed = 6; const int _exitDependencyMissing = 7; const int _exitSwiftFormatFailed = 8; +const int _exitKotlinFormatFailed = 9; -final Uri _googleFormatterUrl = Uri.https('github.com', +final Uri _javaFormatterUrl = Uri.https('github.com', '/google/google-java-format/releases/download/google-java-format-1.3/google-java-format-1.3-all-deps.jar'); +final Uri _kotlinFormatterUrl = Uri.https('maven.org', + '/maven2/com/facebook/ktfmt/0.46/ktfmt-0.46-jar-with-dependencies.jar'); /// A command to format all package code. class FormatCommand extends PackageCommand { @@ -62,14 +65,15 @@ class FormatCommand extends PackageCommand { @override final String description = - 'Formats the code of all packages (Java, Objective-C, C++, Dart, and ' - 'optionally Swift).\n\n' - 'This command requires "git", "flutter" and "clang-format" v5 to be in ' - 'your path.'; + 'Formats the code of all packages (C++, Dart, Java, Kotlin, Objective-C, ' + 'and optionally Swift).\n\n' + 'This command requires "git", "flutter", "java", and "clang-format" v5 ' + 'to be in your path.'; @override Future run() async { - final String googleFormatterPath = await _getGoogleFormatterPath(); + final String javaFormatterPath = await _getJavaFormatterPath(); + final String kotlinFormatterPath = await _getKotlinFormatterPath(); // This class is not based on PackageLoopingCommand because running the // formatters separately for each package is an order of magnitude slower, @@ -77,7 +81,8 @@ class FormatCommand extends PackageCommand { final Iterable files = await _getFilteredFilePaths(getFiles(), relativeTo: packagesDir); await _formatDart(files); - await _formatJava(files, googleFormatterPath); + await _formatJava(files, javaFormatterPath); + await _formatKotlin(files, kotlinFormatterPath); await _formatCppAndObjectiveC(files); final String? swiftFormat = getNullableStringArg(_swiftFormatArg); if (swiftFormat != null) { @@ -187,8 +192,7 @@ class FormatCommand extends PackageCommand { throw ToolExit(_exitDependencyMissing); } - Future _formatJava( - Iterable files, String googleFormatterPath) async { + Future _formatJava(Iterable files, String formatterPath) async { final Iterable javaFiles = _getPathsWithExtensions(files, {'.java'}); if (javaFiles.isNotEmpty) { @@ -202,7 +206,7 @@ class FormatCommand extends PackageCommand { print('Formatting .java files...'); final int exitCode = await _runBatched( - java, ['-jar', googleFormatterPath, '--replace'], + java, ['-jar', formatterPath, '--replace'], files: javaFiles); if (exitCode != 0) { printError('Failed to format Java files: exit code $exitCode.'); @@ -211,6 +215,30 @@ class FormatCommand extends PackageCommand { } } + Future _formatKotlin( + Iterable files, String formatterPath) async { + final Iterable kotlinFiles = + _getPathsWithExtensions(files, {'.kt'}); + if (kotlinFiles.isNotEmpty) { + final String java = getStringArg('java'); + if (!await _hasDependency(java)) { + printError( + 'Unable to run "java". Make sure that it is in your path, or ' + 'provide a full path with --java.'); + throw ToolExit(_exitDependencyMissing); + } + + print('Formatting .kt files...'); + final int exitCode = await _runBatched( + java, ['-jar', formatterPath], + files: kotlinFiles); + if (exitCode != 0) { + printError('Failed to format Kotlin files: exit code $exitCode.'); + throw ToolExit(_exitKotlinFormatFailed); + } + } + } + Future _formatDart(Iterable files) async { final Iterable dartFiles = _getPathsWithExtensions(files, {'.dart'}); @@ -283,7 +311,7 @@ class FormatCommand extends PackageCommand { (String filePath) => extensions.contains(path.extension(filePath))); } - Future _getGoogleFormatterPath() async { + Future _getJavaFormatterPath() async { final String javaFormatterPath = path.join( path.dirname(path.fromUri(platform.script)), 'google-java-format-1.3-all-deps.jar'); @@ -292,13 +320,29 @@ class FormatCommand extends PackageCommand { if (!javaFormatterFile.existsSync()) { print('Downloading Google Java Format...'); - final http.Response response = await http.get(_googleFormatterUrl); + final http.Response response = await http.get(_javaFormatterUrl); javaFormatterFile.writeAsBytesSync(response.bodyBytes); } return javaFormatterPath; } + Future _getKotlinFormatterPath() async { + final String kotlinFormatterPath = path.join( + path.dirname(path.fromUri(platform.script)), + 'ktfmt-0.46-jar-with-dependencies.jar'); + final File kotlinFormatterFile = + packagesDir.fileSystem.file(kotlinFormatterPath); + + if (!kotlinFormatterFile.existsSync()) { + print('Downloading ktfmt...'); + final http.Response response = await http.get(_kotlinFormatterUrl); + kotlinFormatterFile.writeAsBytesSync(response.bodyBytes); + } + + return kotlinFormatterPath; + } + /// Returns true if [command] can be run successfully. Future _hasDependency(String command) async { // Some versions of Java accept both -version and --version, but some only diff --git a/script/tool/test/format_command_test.dart b/script/tool/test/format_command_test.dart index 9ea1f62998..881ef29449 100644 --- a/script/tool/test/format_command_test.dart +++ b/script/tool/test/format_command_test.dart @@ -22,6 +22,7 @@ void main() { late FormatCommand analyzeCommand; late CommandRunner runner; late String javaFormatPath; + late String kotlinFormatPath; setUp(() { fileSystem = MemoryFileSystem(); @@ -34,12 +35,16 @@ void main() { platform: mockPlatform, ); - // Create the java formatter file that the command checks for, to avoid - // a download. + // Create the Java and Kotlin formatter files that the command checks for, + // to avoid a download. final p.Context path = analyzeCommand.path; javaFormatPath = path.join(path.dirname(path.fromUri(mockPlatform.script)), 'google-java-format-1.3-all-deps.jar'); fileSystem.file(javaFormatPath).createSync(recursive: true); + kotlinFormatPath = path.join( + path.dirname(path.fromUri(mockPlatform.script)), + 'ktfmt-0.46-jar-with-dependencies.jar'); + fileSystem.file(kotlinFormatPath).createSync(recursive: true); runner = CommandRunner('format_command', 'Test for format_command'); runner.addCommand(analyzeCommand); @@ -428,6 +433,62 @@ void main() { ])); }); + group('kotlin-format', () { + test('formats .kt files', () async { + const List files = [ + 'android/src/main/kotlin/io/flutter/plugins/a_plugin/a.kt', + 'android/src/main/kotlin/io/flutter/plugins/a_plugin/b.kt', + ]; + final RepositoryPackage plugin = createFakePlugin( + 'a_plugin', + packagesDir, + extraFiles: files, + ); + + await runCapturingPrint(runner, ['format']); + + expect( + processRunner.recordedCalls, + orderedEquals([ + const ProcessCall('java', ['-version'], null), + ProcessCall( + 'java', + [ + '-jar', + kotlinFormatPath, + ...getPackagesDirRelativePaths(plugin, files) + ], + packagesDir.path), + ])); + }); + + test('fails if Kotlin formatter fails', () async { + const List files = [ + 'android/src/main/kotlin/io/flutter/plugins/a_plugin/a.kt', + 'android/src/main/kotlin/io/flutter/plugins/a_plugin/b.kt', + ]; + createFakePlugin('a_plugin', packagesDir, extraFiles: files); + + processRunner.mockProcessesForExecutable['java'] = [ + FakeProcessInfo( + MockProcess(), ['-version']), // check for working java + FakeProcessInfo(MockProcess(exitCode: 1), ['-jar']), // format + ]; + Error? commandError; + final List output = await runCapturingPrint( + runner, ['format'], errorHandler: (Error e) { + commandError = e; + }); + + expect(commandError, isA()); + expect( + output, + containsAllInOrder([ + contains('Failed to format Kotlin files: exit code 1.'), + ])); + }); + }); + group('swift-format', () { test('formats Swift if --swift-format flag is provided', () async { const List files = [