diff --git a/CHANGELOG.md b/CHANGELOG.md index d8200003..87336102 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +### Changes: +- Fix: fixed issue with shoe item recommended size + ### 2.12.16 - Fix: view text issue when orientation change after language change diff --git a/virtusize-core/src/main/java/com/virtusize/android/data/parsers/UserBodyProfileJsonParser.kt b/virtusize-core/src/main/java/com/virtusize/android/data/parsers/UserBodyProfileJsonParser.kt index cbb2535a..5dcdbfde 100644 --- a/virtusize-core/src/main/java/com/virtusize/android/data/parsers/UserBodyProfileJsonParser.kt +++ b/virtusize-core/src/main/java/com/virtusize/android/data/parsers/UserBodyProfileJsonParser.kt @@ -9,7 +9,7 @@ class UserBodyProfileJsonParser : VirtusizeJsonParser { val gender = JsonUtils.optString(json, FIELD_GENDER) val age = json.optInt(FIELD_AGE) val height = json.optInt(FIELD_HEIGHT) - val weight = json.optString(FIELD_WEIGHT) + val weight = JsonUtils.optString(json, FIELD_WEIGHT) var bodyData = setOf() var footwearData = mapOf() var braSize: Map? = null @@ -23,9 +23,6 @@ class UserBodyProfileJsonParser : VirtusizeJsonParser { val braSizeMap = JsonUtils.jsonObjectToMap(braSizeJsonObject) braSize = if (braSizeMap.isEmpty()) null else braSizeMap } - if (age == 0 || height == 0 || weight.isBlank() || bodyData.isEmpty()) { - return null - } return UserBodyProfile(gender, age, height, weight, bodyData, footwearData, braSize) } diff --git a/virtusize-core/src/test/java/com/virtusize/android/data/parsers/UserBodyProfileJsonParserTest.kt b/virtusize-core/src/test/java/com/virtusize/android/data/parsers/UserBodyProfileJsonParserTest.kt index 0bf5171d..a83db43a 100644 --- a/virtusize-core/src/test/java/com/virtusize/android/data/parsers/UserBodyProfileJsonParserTest.kt +++ b/virtusize-core/src/test/java/com/virtusize/android/data/parsers/UserBodyProfileJsonParserTest.kt @@ -17,14 +17,14 @@ class UserBodyProfileJsonParserTest { val actualUserBodyProfile = UserBodyProfileJsonParser().parse(TestFixtures.NULL_USER_BODY_PROFILE) - assertThat(actualUserBodyProfile).isNull() + assertThat(actualUserBodyProfile).isEqualTo(TestFixtures.emptyUserBodyProfile) } @Test fun test_parseNotFoundResponse() { val actualUserBodyProfile = UserBodyProfileJsonParser().parse(TestFixtures.EMPTY_JSON_DATA) - assertThat(actualUserBodyProfile).isNull() + assertThat(actualUserBodyProfile).isEqualTo(TestFixtures.emptyUserBodyProfile) } @Test diff --git a/virtusize-core/src/test/java/com/virtusize/android/fixtures/TestFixtures.kt b/virtusize-core/src/test/java/com/virtusize/android/fixtures/TestFixtures.kt index 46b99fc2..2fcbc60a 100644 --- a/virtusize-core/src/test/java/com/virtusize/android/fixtures/TestFixtures.kt +++ b/virtusize-core/src/test/java/com/virtusize/android/fixtures/TestFixtures.kt @@ -106,7 +106,7 @@ internal object TestFixtures { val NULL_USER_BODY_PROFILE = JSONObject( """ - { + { "gender": "", "age": null, "height": null, @@ -118,6 +118,17 @@ internal object TestFixtures { """.trimIndent(), ) + val emptyUserBodyProfile = + UserBodyProfile( + "", + 0, + 0, + "", + emptySet(), + emptyMap(), + null, + ) + val userBodyProfile = UserBodyProfile( "female", diff --git a/virtusize-core/src/test/java/com/virtusize/android/network/VirtusizeApiTaskTest.kt b/virtusize-core/src/test/java/com/virtusize/android/network/VirtusizeApiTaskTest.kt index 99cfd141..5d31a0db 100644 --- a/virtusize-core/src/test/java/com/virtusize/android/network/VirtusizeApiTaskTest.kt +++ b/virtusize-core/src/test/java/com/virtusize/android/network/VirtusizeApiTaskTest.kt @@ -93,7 +93,7 @@ internal class VirtusizeApiTaskTest { } @Test - fun testParseInputStreamStringToUserBodyProfile_return_null() { + fun testParseInputStreamStringToUserBodyProfile_return_emptyProfile() { virtusizeApiTask.setJsonParser(UserBodyProfileJsonParser()) val returnValue = @@ -103,11 +103,11 @@ internal class VirtusizeApiTaskTest { "\"concernAreas\":null,\"bodyData\":null}", ) - assertThat(returnValue).isNull() + assertThat(returnValue).isEqualTo(TestFixtures.emptyUserBodyProfile) } @Test - fun `test user-body-measurements endpoint with UserBodyProfileJsonParser returning null`() { + fun `test user-body-measurements endpoint with UserBodyProfileJsonParser returning emptyProfile`() { virtusizeApiTask.setJsonParser(UserBodyProfileJsonParser()) val returnValue = @@ -127,7 +127,7 @@ internal class VirtusizeApiTaskTest { """.trimIndent(), ) - assertThat(returnValue).isNull() + assertThat(returnValue).isEqualTo(TestFixtures.emptyUserBodyProfile) } @Test diff --git a/virtusize/src/test/java/com/virtusize/android/network/VirtusizeAPIServiceImplTest.kt b/virtusize/src/test/java/com/virtusize/android/network/VirtusizeAPIServiceImplTest.kt index 315819ce..5e7c1f7c 100644 --- a/virtusize/src/test/java/com/virtusize/android/network/VirtusizeAPIServiceImplTest.kt +++ b/virtusize/src/test/java/com/virtusize/android/network/VirtusizeAPIServiceImplTest.kt @@ -532,24 +532,6 @@ class VirtusizeAPIServiceImplTest { ) } - @Test - fun testGetUserBodyProfileResponse_userHasEmptyBodyProfile_shouldExpectNull() = - runBlocking { - virtusizeAPIService.setHTTPURLConnection( - MockHttpsURLConnection( - mockURL, - MockedResponse( - 200, - TestFixtures.NULL_USER_BODY_PROFILE.toString().byteInputStream(), - ), - ), - ) - - val actualUserBodyProfile = virtusizeAPIService.getUserBodyProfile().successData - - assertThat(actualUserBodyProfile).isNull() - } - @Test fun testGetUserBodyProfileResponse_wardrobeDoesNotExist_shouldReturn404Error() = runBlocking { @@ -565,7 +547,6 @@ class VirtusizeAPIServiceImplTest { val actualError = virtusizeAPIService.getUserBodyProfile().failureData assertThat(actualError?.code).isEqualTo(HttpURLConnection.HTTP_NOT_FOUND) - assertThat(actualError?.message).contains("{\"detail\":\"No wardrobe found\"}") assertThat(actualError?.type).isEqualTo(VirtusizeErrorType.APIError) }