@@ -33,31 +33,28 @@ class StringBatchingTest {
3333 result.typeSpec.propertySpecs.any { it.name == " __platformDetails" },
3434 containerSource
3535 )
36+ assertTrue(
37+ containerSource.contains(" public override val __platformDetails" ),
38+ containerSource
39+ )
3640 assertTrue(
3741 result.typeSpec.funSpecs.any { it.name == " values" },
3842 containerSource
3943 )
4044
4145 assertEquals(expected = 1 , actual = result.fileSpecs.size)
42- assertEquals(expected = " Strings0 .commonMain" , actual = result.fileSpecs.single().name)
46+ assertEquals(expected = " CommonMainStrings0 .commonMain" , actual = result.fileSpecs.single().name)
4347
4448 val accessorSource = result.fileSpecs.single().toString()
4549 assertTrue(
46- accessorSource.contains(" internal expect object CommonMainStrings0" ),
47- accessorSource
48- )
49- assertTrue(
50- accessorSource.contains(" public val MR.strings.key_000: StringResource" ),
51- accessorSource
52- )
53- assertTrue(
54- accessorSource.contains(" get() = CommonMainStrings0.key_000" ),
50+ accessorSource.contains(" public expect val MR.strings.key_000: StringResource" ),
5551 accessorSource
5652 )
53+ assertFalse(accessorSource.contains(" CommonMainStrings0" ), accessorSource)
5754 }
5855
5956 @Test
60- fun commonStringsAreSplitIntoHundredItemBatches () {
57+ fun commonStringsAreSplitIntoFiftyItemBatches () {
6158 val oneHundredResult = createCommonGenerator().generateExpectObject(
6259 parentObjectName = MR_CLASS_NAME ,
6360 resources = createStrings(count = 100 ),
@@ -74,14 +71,18 @@ class StringBatchingTest {
7471 sourceSetName = COMMON_SOURCE_SET
7572 )!!
7673
77- assertEquals(expected = 1 , actual = oneHundredResult.fileSpecs.size)
74+ assertEquals(expected = 2 , actual = oneHundredResult.fileSpecs.size)
7875 assertEquals(
79- expected = listOf (" Strings0.commonMain" , " Strings1.commonMain" ),
76+ expected = listOf (
77+ " CommonMainStrings0.commonMain" ,
78+ " CommonMainStrings1.commonMain" ,
79+ " CommonMainStrings2.commonMain"
80+ ),
8081 actual = oneHundredOneResult.fileSpecs.map { it.name }
8182 )
82- assertEquals(expected = 10 , actual = largeResult.fileSpecs.size)
83- assertEquals(expected = " Strings0 .commonMain" , actual = largeResult.fileSpecs.first().name)
84- assertEquals(expected = " Strings9 .commonMain" , actual = largeResult.fileSpecs.last().name)
83+ assertEquals(expected = 20 , actual = largeResult.fileSpecs.size)
84+ assertEquals(expected = " CommonMainStrings0 .commonMain" , actual = largeResult.fileSpecs.first().name)
85+ assertEquals(expected = " CommonMainStrings19 .commonMain" , actual = largeResult.fileSpecs.last().name)
8586 }
8687
8788 @Test
@@ -101,33 +102,34 @@ class StringBatchingTest {
101102 assertFalse(containerSource.contains(" val key_000: StringResource" ), containerSource)
102103 assertTrue(containerSource.contains(" CommonMainStrings0.values()" ), containerSource)
103104 assertTrue(containerSource.contains(" CommonMainStrings1.values()" ), containerSource)
105+ assertTrue(containerSource.contains(" CommonMainStrings2.values()" ), containerSource)
104106
105107 val firstBatchSource = androidResult.fileSpecs
106108 .single { it.name == " CommonMainStrings0.androidMain" }
107109 .toString()
108110 assertTrue(
109- firstBatchSource.contains(" internal actual object CommonMainStrings0" ),
111+ firstBatchSource.contains(" internal object CommonMainStrings0" ),
110112 firstBatchSource
111113 )
112114 assertTrue(
113- firstBatchSource.contains(" public actual val key_000: StringResource by" ),
115+ firstBatchSource.contains(" internal val key_000: StringResource by" ),
114116 firstBatchSource
115117 )
116- assertFalse(
118+ assertTrue(firstBatchSource.contains(" private fun init_key_000(): StringResource" ), firstBatchSource)
119+ assertTrue(firstBatchSource.contains(" StringResource(R.string.key_000)" ), firstBatchSource)
120+ assertTrue(
117121 firstBatchSource.contains(" public actual val MR.strings.key_000: StringResource" ),
118122 firstBatchSource
119123 )
120- assertTrue(firstBatchSource.contains(" private fun init_key_000(): StringResource" ), firstBatchSource)
121- assertTrue(firstBatchSource.contains(" StringResource(R.string.key_000)" ), firstBatchSource)
122124
123125 val secondBatchSource = androidResult.fileSpecs
124- .single { it.name == " CommonMainStrings1 .androidMain" }
126+ .single { it.name == " CommonMainStrings2 .androidMain" }
125127 .toString()
126128 assertTrue(secondBatchSource.contains(" StringResource(R.string.key_100)" ), secondBatchSource)
127129 }
128130
129131 @Test
130- fun appleActualStringsUsePlatformDetailsProvider () {
132+ fun appleActualStringsUseSharedPlatformDetailsProvider () {
131133 val commonResult = createCommonGenerator().generateExpectObject(
132134 parentObjectName = MR_CLASS_NAME ,
133135 resources = createStrings(count = 1 ),
@@ -140,35 +142,46 @@ class StringBatchingTest {
140142 )!!
141143
142144 val containerSource = appleResult.typeSpec.toString()
145+ assertTrue(containerSource.contains(" public actual override val __platformDetails" ), containerSource)
143146 assertTrue(containerSource.contains(" PlatformDetailsProvider.details" ), containerSource)
144147
145148 val batchSource = appleResult.fileSpecs
146149 .single { it.name == " CommonMainStrings0.iosMain" }
147150 .toString()
148151 assertTrue(
149- batchSource.contains(" internal actual object CommonMainStrings0" ),
152+ batchSource.contains(" internal object CommonMainStrings0" ),
150153 batchSource
151154 )
152- assertTrue(batchSource.contains(" public actual val key_000: StringResource by" ), batchSource)
155+ assertTrue(batchSource.contains(" internal val key_000: StringResource by" ), batchSource)
153156 assertTrue(
154157 batchSource.contains(" resourceId = \" key_000\" " ),
155158 batchSource
156159 )
157160 assertTrue(
158- batchSource.contains(" PlatformDetailsProvider.bundle" ),
159- batchSource
160- )
161- assertFalse(
162- batchSource.contains(" public actual val MR.strings.key_000: StringResource" ),
161+ batchSource.contains(" PlatformDetailsProvider.details.nsBundle" ),
163162 batchSource
164163 )
164+ assertFalse(batchSource.contains(" private val bundle" ), batchSource)
165+ assertFalse(batchSource.contains(" private val __platformDetails" ), batchSource)
166+ assertTrue(batchSource.contains(" public actual val MR.strings.key_000: StringResource" ), batchSource)
167+ }
168+
169+ @Test
170+ fun targetSpecificStringsUseCorrectVisibility () {
171+ val result = createAndroidGenerator().generateObject(
172+ parentObjectName = " MRandroidMain" ,
173+ resources = createStrings(count = 1 ),
174+ sourceSetName = ANDROID_SOURCE_SET
175+ )!!
165176
166- val providerSource = appleResult .fileSpecs
167- .single { it.name == " PlatformDetailsProvider " }
177+ val batchSource = result .fileSpecs
178+ .single { it.name == " AndroidMainStrings0.androidMain " }
168179 .toString()
169- assertTrue(providerSource.contains(" internal object PlatformDetailsProvider" ), providerSource)
170- assertTrue(providerSource.contains(" NSBundle.loadableBundle(\" com.example.bundle\" )" ), providerSource)
171- assertTrue(providerSource.contains(" ResourcePlatformDetails(bundle)" ), providerSource)
180+
181+ // Batch object should be public (visibilityModifier)
182+ assertTrue(batchSource.contains(" internal object AndroidMainStrings0" ), batchSource)
183+ // Extension property should be public
184+ assertTrue(batchSource.contains(" public val MRandroidMain.strings.key_000: StringResource" ), batchSource)
172185 }
173186
174187 private fun createCommonGenerator (): ResourceTypeGenerator <StringMetadata > {
@@ -188,8 +201,7 @@ class StringBatchingTest {
188201 return createGenerator(
189202 platformResourceGenerator = AppleStringResourceGenerator (
190203 baseLocalizationRegion = " en" ,
191- resourcesGenerationDir = File (" ." ),
192- bundleIdentifier = " com.example.bundle"
204+ resourcesGenerationDir = File (" ." )
193205 )
194206 )
195207 }
@@ -206,8 +218,7 @@ class StringBatchingTest {
206218 generator = StringResourceGenerator (strictLineBreaks = false ),
207219 platformResourceGenerator = platformResourceGenerator,
208220 filter = {},
209- resourcesPackageName = PACKAGE_NAME ,
210- generatePropertiesAsExtensions = true
221+ resourcesPackageName = PACKAGE_NAME
211222 )
212223 }
213224
0 commit comments