Skip to content

Commit 7e590d8

Browse files
committed
Written integration tests for Storage API
1 parent f40d4de commit 7e590d8

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package com.ecwid.apiclient.v3.entity
2+
3+
import com.ecwid.apiclient.v3.converter.toUpdated
4+
import com.ecwid.apiclient.v3.dto.storage.request.*
5+
import com.ecwid.apiclient.v3.jsontransformer.gson.GsonTransformer
6+
import org.junit.jupiter.api.Assertions.assertEquals
7+
import org.junit.jupiter.api.Assertions.assertNotNull
8+
import org.junit.jupiter.api.BeforeEach
9+
import org.junit.jupiter.api.Test
10+
11+
class StorageTest : BaseEntityTest() {
12+
13+
@BeforeEach
14+
override fun beforeEach() {
15+
super.beforeEach()
16+
}
17+
18+
@Test
19+
fun testStorageApiSingleItemCreation() {
20+
val updateData = StorageApiData(123, "test")
21+
val key = "key"
22+
val value = updateData.toJson()
23+
24+
val updatedStorageEntity = UpdatedStorageEntity(key = key, value = value)
25+
val updateRequest = StorageEntityUpdateRequest(updatedStorageEntity)
26+
val updateResult = apiClient.createOrUpdateStorageEntity(updateRequest)
27+
assertEquals(1, updateResult.updateCount)
28+
29+
val storageEntityRequest = StorageEntityRequest(key)
30+
val storageEntity = apiClient.getStorageEntity(storageEntityRequest)
31+
assertEquals(updatedStorageEntity, storageEntity.toUpdated())
32+
33+
val fetchedData = StorageApiData.fromJson(storageEntity.value)
34+
assertEquals(updateData, fetchedData)
35+
36+
val deleteRequest = StorageEntityDeleteRequest(key)
37+
val deleteResult = apiClient.deleteStorageEntity(deleteRequest)
38+
assertEquals(1, deleteResult.deleteCount)
39+
}
40+
41+
@Test
42+
fun testStorageApiMultipleItemsCreation() {
43+
val updatedEntities = listOf(
44+
UpdatedStorageEntity(key = "key1", value = StorageApiData(123, "test1").toJson()),
45+
UpdatedStorageEntity(key = "key2", value = StorageApiData(456, "test2").toJson()),
46+
)
47+
48+
updatedEntities.forEach { entity ->
49+
val updateRequest = StorageEntityUpdateRequest(entity)
50+
val updateResult = apiClient.createOrUpdateStorageEntity(updateRequest)
51+
assertEquals(1, updateResult.updateCount)
52+
}
53+
54+
val storageEntitiesRequest = StorageEntitiesRequest()
55+
val storageEntitiesResult = apiClient.getAllStorageEntities(storageEntitiesRequest)
56+
storageEntitiesResult.forEach { fetchedEntity ->
57+
val updatedEntity = updatedEntities.find { it.key == fetchedEntity.key }
58+
assertNotNull(updatedEntity)
59+
assertEquals(updatedEntity, fetchedEntity.toUpdated())
60+
}
61+
62+
updatedEntities.forEach { entity ->
63+
val deleteRequest = StorageEntityDeleteRequest(entity.key)
64+
val deleteResult = apiClient.deleteStorageEntity(deleteRequest)
65+
assertEquals(1, deleteResult.deleteCount)
66+
}
67+
}
68+
69+
private data class StorageApiData(
70+
val number: Int = 0,
71+
val string: String = "",
72+
) {
73+
fun toJson(): String {
74+
return transformer.serialize(this, null)
75+
}
76+
77+
companion object {
78+
private val transformer = GsonTransformer(emptyList())
79+
80+
fun fromJson(json: String): StorageApiData? {
81+
return transformer.deserialize(json, StorageApiData::class.java)
82+
}
83+
}
84+
}
85+
86+
}

0 commit comments

Comments
 (0)