From 72de224b08d4a81c896eb556069d82c758e76ab4 Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Mon, 13 Nov 2023 08:18:25 -0800 Subject: [PATCH] [tool] Add Kotlin autoformatting (#5374) Updates the tooling to fetch and use `ktfmt` for Kotlin code, the same way it currently does for the Google Java formatter, and applies that formatting (in the default mode; see discussion in the linked issue) to the repository. In the future we could revisit the formatter or mode, but since this currently seems to be the most consistent with our other languages and to google3 formatting this is likely the option we'll want to stick with. Fixes https://github.com/flutter/flutter/issues/118756 --- .ci.yaml | 5 +- .../animations/example/MainActivity.kt | 4 +- .../com/example/example/MainActivity.kt | 3 +- .../file_selector_example/MainActivity.kt | 3 +- .../dev/flutter/example/MainActivity.kt | 3 +- .../com/example/example/MainActivity.kt | 3 +- .../flutter_markdown_example/MainActivity.kt | 3 +- .../com/example/example/MainActivity.kt | 3 +- .../palettegenerator/example/MainActivity.kt | 4 +- packages/pigeon/example/README.md | 8 +- .../pigeon_example_app/MainActivity.kt | 15 +- .../flutter/pigeon_example_app/Messages.g.kt | 98 +- .../com/example/test_plugin/CoreTests.gen.kt | 1263 +++++++++++------ .../com/example/test_plugin/TestPlugin.kt | 105 +- .../example/test_plugin/AllDatatypesTest.kt | 241 ++-- .../example/test_plugin/AsyncHandlersTest.kt | 175 ++- .../test_plugin/EchoBinaryMessenger.kt | 38 +- .../com/example/test_plugin/EnumTest.kt | 100 +- .../com/example/test_plugin/ListTest.kt | 51 +- .../example/test_plugin/MultipleArityTests.kt | 106 +- .../example/test_plugin/NonNullFieldsTests.kt | 12 +- .../test_plugin/NullableReturnsTest.kt | 86 +- .../com/example/test_plugin/PrimitiveTest.kt | 586 ++++---- .../test_plugin_example/MainActivity.kt | 3 +- .../flutter/plaform_example/MainActivity.kt | 3 +- .../rfw/examples/hello/MainActivity.kt | 3 +- .../rfw/examples/local/MainActivity.kt | 3 +- .../rfw/examples/remote/MainActivity.kt | 3 +- .../com/example/example/MainActivity.kt | 3 +- script/tool/lib/src/format_command.dart | 68 +- script/tool/test/format_command_test.dart | 65 +- 31 files changed, 1811 insertions(+), 1255 deletions(-) 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 = [