@@ -16,7 +16,7 @@ class CoinDetailsMapperTest {
16
16
// Class under test
17
17
private val coinDetailsMapper = CoinDetailsMapper ()
18
18
19
- private val currency = Currency .USD
19
+ private val defaultCurrency = Currency .USD
20
20
21
21
@Test
22
22
fun `When coin details data holder is null should return default values` () {
@@ -43,7 +43,7 @@ class CoinDetailsMapperTest {
43
43
// Act
44
44
val coinDetails = coinDetailsMapper.mapApiModelToModel(
45
45
apiModel = coinDetailsApiModel,
46
- currency = currency
46
+ currency = defaultCurrency
47
47
)
48
48
49
49
// Assert
@@ -77,7 +77,7 @@ class CoinDetailsMapperTest {
77
77
// Act
78
78
val coinDetails = coinDetailsMapper.mapApiModelToModel(
79
79
apiModel = coinDetailsApiModel,
80
- currency = currency
80
+ currency = defaultCurrency
81
81
)
82
82
83
83
// Assert
@@ -123,7 +123,7 @@ class CoinDetailsMapperTest {
123
123
// Act
124
124
val coinDetails = coinDetailsMapper.mapApiModelToModel(
125
125
apiModel = coinDetailsApiModel,
126
- currency = currency
126
+ currency = defaultCurrency
127
127
)
128
128
129
129
// Assert
@@ -174,7 +174,7 @@ class CoinDetailsMapperTest {
174
174
// Act
175
175
val coinDetails = coinDetailsMapper.mapApiModelToModel(
176
176
apiModel = coinDetailsApiModel,
177
- currency = currency
177
+ currency = defaultCurrency
178
178
)
179
179
180
180
// Assert
@@ -225,7 +225,7 @@ class CoinDetailsMapperTest {
225
225
// Act
226
226
val coinDetails = coinDetailsMapper.mapApiModelToModel(
227
227
apiModel = coinDetailsApiModel,
228
- currency = currency
228
+ currency = defaultCurrency
229
229
)
230
230
231
231
// Assert
@@ -273,6 +273,112 @@ class CoinDetailsMapperTest {
273
273
listedDate = " 26 Feb 2012"
274
274
)
275
275
276
+ // Act
277
+ val coinDetails = coinDetailsMapper.mapApiModelToModel(
278
+ coinDetailsApiModel,
279
+ currency = defaultCurrency
280
+ )
281
+
282
+ // Assert
283
+ assertThat(coinDetails).isEqualTo(expectedCoinDetails)
284
+ }
285
+
286
+ @Test
287
+ fun `When coin details has gbp currency with valid values should map expected coin details` () {
288
+ // Arrange
289
+ val currency = Currency .GBP
290
+
291
+ val coinDetailsApiModel = CoinDetailsApiModel (
292
+ coinDetailsDataHolder = CoinDetailsDataHolder (
293
+ coinDetailsData = CoinDetailsData (
294
+ id = " Qwsogvtv82FCd" ,
295
+ name = " Bitcoin" ,
296
+ symbol = " BTC" ,
297
+ imageUrl = " https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg" ,
298
+ currentPrice = " 29490.954785191607" ,
299
+ marketCap = " 515076089546.27606" ,
300
+ marketCapRank = " 1" ,
301
+ volume24h = " 9294621082.273935" ,
302
+ supply = Supply (
303
+ circulatingSupply = " 19508368"
304
+ ),
305
+ allTimeHigh = AllTimeHigh (
306
+ price = " 68763.41083248306" ,
307
+ timestamp = 1636502400
308
+ ),
309
+ listedAt = 1330214400
310
+ )
311
+ )
312
+ )
313
+
314
+ val expectedCoinDetails = CoinDetails (
315
+ id = " Qwsogvtv82FCd" ,
316
+ name = " Bitcoin" ,
317
+ symbol = " BTC" ,
318
+ imageUrl = " https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg" ,
319
+ currentPrice = Price (" 29490.954785191607" , currency = currency),
320
+ marketCap = Price (" 515076089546.27606" , currency = currency),
321
+ marketCapRank = " 1" ,
322
+ volume24h = " 9,294,621,082.274" ,
323
+ circulatingSupply = " 19,508,368" ,
324
+ allTimeHigh = Price (" 68763.41083248306" , currency = currency),
325
+ allTimeHighDate = " 10 Nov 2021" ,
326
+ listedDate = " 26 Feb 2012"
327
+ )
328
+
329
+ // Act
330
+ val coinDetails = coinDetailsMapper.mapApiModelToModel(
331
+ coinDetailsApiModel,
332
+ currency = currency
333
+ )
334
+
335
+ // Assert
336
+ assertThat(coinDetails).isEqualTo(expectedCoinDetails)
337
+ }
338
+
339
+ @Test
340
+ fun `When coin details has eur currency with valid values should map expected coin details` () {
341
+ // Arrange
342
+ val currency = Currency .EUR
343
+
344
+ val coinDetailsApiModel = CoinDetailsApiModel (
345
+ coinDetailsDataHolder = CoinDetailsDataHolder (
346
+ coinDetailsData = CoinDetailsData (
347
+ id = " Qwsogvtv82FCd" ,
348
+ name = " Bitcoin" ,
349
+ symbol = " BTC" ,
350
+ imageUrl = " https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg" ,
351
+ currentPrice = " 29490.954785191607" ,
352
+ marketCap = " 515076089546.27606" ,
353
+ marketCapRank = " 1" ,
354
+ volume24h = " 9294621082.273935" ,
355
+ supply = Supply (
356
+ circulatingSupply = " 19508368"
357
+ ),
358
+ allTimeHigh = AllTimeHigh (
359
+ price = " 68763.41083248306" ,
360
+ timestamp = 1636502400
361
+ ),
362
+ listedAt = 1330214400
363
+ )
364
+ )
365
+ )
366
+
367
+ val expectedCoinDetails = CoinDetails (
368
+ id = " Qwsogvtv82FCd" ,
369
+ name = " Bitcoin" ,
370
+ symbol = " BTC" ,
371
+ imageUrl = " https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg" ,
372
+ currentPrice = Price (" 29490.954785191607" , currency = currency),
373
+ marketCap = Price (" 515076089546.27606" , currency = currency),
374
+ marketCapRank = " 1" ,
375
+ volume24h = " 9,294,621,082.274" ,
376
+ circulatingSupply = " 19,508,368" ,
377
+ allTimeHigh = Price (" 68763.41083248306" , currency = currency),
378
+ allTimeHighDate = " 10 Nov 2021" ,
379
+ listedDate = " 26 Feb 2012"
380
+ )
381
+
276
382
// Act
277
383
val coinDetails = coinDetailsMapper.mapApiModelToModel(
278
384
coinDetailsApiModel,
0 commit comments