package io.delphiplatform.api.v3.model.mapper import com.sonymusic.delphi.etl.apps.proto.Apple import com.sonymusic.delphi.etl.apps.proto.Spotify import com.sonymusic.delphi.etl.apps.proto.Youtube import fr.xebia.extras.selma.Selma import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test internal class GendersMapperTest { private val mapper = Selma.builder(GendersMapper::class.java).build() @Test fun test_toGender_spotify() { val inputObject = Spotify.SpotifyGender.newBuilder() .setFemale(10) .setMale(11) .setNeutral(12) .setOther(13) .build() val result = mapper.toGender(inputObject) Assertions.assertEquals(inputObject.female, result.female) Assertions.assertEquals(inputObject.male, result.male) Assertions.assertEquals(inputObject.neutral, result.neutral) Assertions.assertEquals(inputObject.other, result.unknown) } @Test fun test_toGender_apple() { val inputObject = Apple.AppleMusicAggregation.AppleGenders.newBuilder() .setFemale(10) .setMale(11) .setUnknown(12) .build() val result = mapper.toGender(inputObject) Assertions.assertEquals(inputObject.female, result.female) Assertions.assertEquals(inputObject.male, result.male) Assertions.assertNull(result.neutral) Assertions.assertEquals(inputObject.unknown, result.unknown) } @Test fun test_toGender_youtube() { val inputObject = Youtube.YoutubeGenders.newBuilder() .setFemale(10f) .setMale(11f) .setOther(12f) .build() val result = mapper.toGender(inputObject) Assertions.assertEquals(inputObject.female, result.female.get()) Assertions.assertEquals(inputObject.male, result.male.get()) Assertions.assertEquals(inputObject.other, result.unknown.get()) } }