package com.artemzin.qualitymatters.integration_tests.api.entities; import com.artemzin.qualitymatters.QualityMattersIntegrationRobolectricTestRunner; import com.artemzin.qualitymatters.api.entities.Item; import com.google.gson.Gson; import org.junit.Test; import org.junit.runner.RunWith; import java.io.IOException; import static org.assertj.core.api.Assertions.assertThat; @RunWith(QualityMattersIntegrationRobolectricTestRunner.class) public class ItemTest { // Why test JSON serialization/deserialization? // 1. Update JSON libraries without worrying about breaking changes. // 2. Be sure that @JsonIgnore and similar annotations do not affect expected behavior (cc @karlicos). @Test public void fromJson() throws IOException { Gson gson = QualityMattersIntegrationRobolectricTestRunner.qualityMattersApp().applicationComponent().gson(); Item item = gson.fromJson("{ " + "\"id\": \"test_id\", " + "\"image_preview_url\": \"some_url\"," + "\"title\": \"Test title\", " + "\"short_description\": \"Test short description\"" + "}", Item.class); assertThat(item.id()).isEqualTo("test_id"); assertThat(item.imagePreviewUrl()).isEqualTo("some_url"); assertThat(item.title()).isEqualTo("Test title"); assertThat(item.shortDescription()).isEqualTo("Test short description"); } }