|
| 1 | +package love.forte.plugin.suspendtrans.cli |
| 2 | + |
| 3 | +import love.forte.plugin.suspendtrans.configuration.InternalSuspendTransformConfigurationApi |
| 4 | +import love.forte.plugin.suspendtrans.configuration.SuspendTransformConfiguration |
| 5 | +import love.forte.plugin.suspendtrans.configuration.SuspendTransformConfigurations.jsPromiseTransformer |
| 6 | +import love.forte.plugin.suspendtrans.configuration.SuspendTransformConfigurations.jvmAsyncTransformer |
| 7 | +import love.forte.plugin.suspendtrans.configuration.SuspendTransformConfigurations.jvmBlockingTransformer |
| 8 | +import love.forte.plugin.suspendtrans.configuration.TargetPlatform |
| 9 | +import kotlin.test.Test |
| 10 | +import kotlin.test.assertEquals |
| 11 | + |
| 12 | +/** |
| 13 | + * |
| 14 | + * @author ForteScarlet |
| 15 | + */ |
| 16 | +class ConfigurationSerializeTests { |
| 17 | + @OptIn(InternalSuspendTransformConfigurationApi::class) |
| 18 | + @Test |
| 19 | + fun testDecode() { |
| 20 | + assertEquals( |
| 21 | + "", |
| 22 | + SuspendTransformConfiguration(emptyMap()).encodeToHex() |
| 23 | + ) |
| 24 | + |
| 25 | + val config = SuspendTransformConfiguration( |
| 26 | + transformers = mapOf( |
| 27 | + TargetPlatform.JVM to listOf(jvmBlockingTransformer, jvmAsyncTransformer), |
| 28 | + TargetPlatform.JS to listOf(jsPromiseTransformer), |
| 29 | + ) |
| 30 | + ) |
| 31 | + |
| 32 | + val hex = config.encodeToHex() |
| 33 | + |
| 34 | + assertEquals( |
| 35 | + "0aa807080112bd030a680a3c0a296c6f76652e666f7274652e706c7567696e2e" + |
| 36 | + "73757370656e647472616e732e616e6e6f746174696f6e120b4a766d426c6f63" + |
| 37 | + "6b696e67180020001208626173654e616d651a06737566666978220a61735072" + |
| 38 | + "6f70657274792a08426c6f636b696e67300012390a266c6f76652e666f727465" + |
| 39 | + "2e706c7567696e2e73757370656e647472616e732e72756e74696d65120f2472" + |
| 40 | + "756e496e426c6f636b696e672420002a240a1e0a0a6b6f746c696e2e6a766d12" + |
| 41 | + "0c4a766d53796e7468657469631800200010001800323c0a360a296c6f76652e" + |
| 42 | + "666f7274652e706c7567696e2e73757370656e647472616e732e616e6e6f7461" + |
| 43 | + "74696f6e1205417069344a18002000100018013801421e0a0a6b6f746c696e2e" + |
| 44 | + "6a766d120c4a766d53796e74686574696318002000423c0a296c6f76652e666f" + |
| 45 | + "7274652e706c7567696e2e73757370656e647472616e732e616e6e6f74617469" + |
| 46 | + "6f6e120b4a766d426c6f636b696e671800200042390a296c6f76652e666f7274" + |
| 47 | + "652e706c7567696e2e73757370656e647472616e732e616e6e6f746174696f6e" + |
| 48 | + "12084a766d4173796e631800200042130a066b6f746c696e12054f7074496e18" + |
| 49 | + "002000480012e3030a620a390a296c6f76652e666f7274652e706c7567696e2e" + |
| 50 | + "73757370656e647472616e732e616e6e6f746174696f6e12084a766d4173796e" + |
| 51 | + "63180020001208626173654e616d651a06737566666978220a617350726f7065" + |
| 52 | + "7274792a054173796e63300012360a266c6f76652e666f7274652e706c756769" + |
| 53 | + "6e2e73757370656e647472616e732e72756e74696d65120c2472756e496e4173" + |
| 54 | + "796e63241a2d0a146a6176612e7574696c2e636f6e63757272656e741211436f" + |
| 55 | + "6d706c657461626c654675747572651800200020012a240a1e0a0a6b6f746c69" + |
| 56 | + "6e2e6a766d120c4a766d53796e7468657469631800200010001800323c0a360a" + |
| 57 | + "296c6f76652e666f7274652e706c7567696e2e73757370656e647472616e732e" + |
| 58 | + "616e6e6f746174696f6e1205417069344a18002000100018013801421e0a0a6b" + |
| 59 | + "6f746c696e2e6a766d120c4a766d53796e74686574696318002000423c0a296c" + |
| 60 | + "6f76652e666f7274652e706c7567696e2e73757370656e647472616e732e616e" + |
| 61 | + "6e6f746174696f6e120b4a766d426c6f636b696e671800200042390a296c6f76" + |
| 62 | + "652e666f7274652e706c7567696e2e73757370656e647472616e732e616e6e6f" + |
| 63 | + "746174696f6e12084a766d4173796e631800200042130a066b6f746c696e1205" + |
| 64 | + "4f7074496e1800200048000ad202080212cd020a630a3a0a296c6f76652e666f" + |
| 65 | + "7274652e706c7567696e2e73757370656e647472616e732e616e6e6f74617469" + |
| 66 | + "6f6e12094a7350726f6d697365180020001208626173654e616d651a06737566" + |
| 67 | + "666978220a617350726f70657274792a054173796e63300012360a266c6f7665" + |
| 68 | + "2e666f7274652e706c7567696e2e73757370656e647472616e732e72756e7469" + |
| 69 | + "6d65120c2472756e496e4173796e63241a180a096b6f746c696e2e6a73120750" + |
| 70 | + "726f6d697365180020002001323d0a370a296c6f76652e666f7274652e706c75" + |
| 71 | + "67696e2e73757370656e647472616e732e616e6e6f746174696f6e1206417069" + |
| 72 | + "344a7318002000100018013801423a0a296c6f76652e666f7274652e706c7567" + |
| 73 | + "696e2e73757370656e647472616e732e616e6e6f746174696f6e12094a735072" + |
| 74 | + "6f6d6973651800200042130a066b6f746c696e12054f7074496e180020004800", |
| 75 | + hex |
| 76 | + ) |
| 77 | + |
| 78 | + assertEquals( |
| 79 | + config, |
| 80 | + decodeSuspendTransformConfigurationFromHex(hex) |
| 81 | + ) |
| 82 | + } |
| 83 | + |
| 84 | +} |
0 commit comments