@@ -28,6 +28,7 @@ import arcs.core.entity.ForeignReferenceCheckerImpl
2828import arcs.core.host.api.HandleHolder
2929import arcs.core.storage.api.DriverAndKeyConfigurator
3030import arcs.core.storage.driver.RamDisk
31+ import arcs.core.storage.keys.DatabaseStorageKey
3132import arcs.core.storage.keys.RamDiskStorageKey
3233import arcs.core.storage.referencemode.ReferenceModeStorageKey
3334import arcs.core.storage.testutil.testStorageEndpointManager
@@ -171,9 +172,13 @@ class UtilsTest(private val params: Params) {
171172 }
172173 }
173174
174- private fun generateHandle (key : String , type : Type ) =
175+ private fun generateHandle (key : String , type : Type , db : Boolean = true ) =
175176 Plan .Handle (
176- RamDiskStorageKey (key),
177+ if (! db) RamDiskStorageKey (key)
178+ else ReferenceModeStorageKey (
179+ backingKey = DatabaseStorageKey .Persistent (" backing$key " , " 1234a" , dbName = " test" ),
180+ storageKey = DatabaseStorageKey .Persistent (" entity$key " , " 1234a" , dbName = " test" ),
181+ ),
177182 type,
178183 emptyList()
179184 )
@@ -213,6 +218,22 @@ class UtilsTest(private val params: Params) {
213218 assertThat(isWriteOnlyStorageKey(partition, handle.storageKey)).isTrue()
214219 }
215220
221+ @Test
222+ fun isWriteOnlyStorageKey_withOneParticleAndAllWriteOnlyRamDiskConnections_isFalse () {
223+ BuildFlags .WRITE_ONLY_STORAGE_STACK = true
224+
225+ val handle = generateHandle(" foo" , collectionType, db = false )
226+ val connection = generateConnection(handle, collectionType, HandleMode .Write )
227+ val particle = generateParticle(" foo" , " bar" to connection)
228+
229+ val partition = Plan .Partition (
230+ " fooId" ,
231+ " fooHost" ,
232+ listOf (particle)
233+ )
234+ assertThat(isWriteOnlyStorageKey(partition, handle.storageKey)).isFalse()
235+ }
236+
216237 @Test
217238 fun isWriteOnlyStorageKey_withOneParticleAndOneSingletonConnection_isFalse () {
218239 BuildFlags .WRITE_ONLY_STORAGE_STACK = true
0 commit comments