package com.nilhcem.bblfr.ui.baggers.list; import android.os.Build; import android.os.Parcel; import android.text.Spanned; import com.nilhcem.bblfr.BuildConfig; import com.nilhcem.bblfr.R; import com.nilhcem.bblfr.core.utils.CompatibilityUtils; import com.nilhcem.bblfr.model.baggers.Bagger; import com.nilhcem.bblfr.model.baggers.Contact; import com.nilhcem.bblfr.model.baggers.Session; import com.nilhcem.bblfr.model.baggers.Website; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import java.util.Arrays; import java.util.Locale; import static com.google.common.truth.Truth.assertThat; @RunWith(RobolectricTestRunner.class) @Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.M) public class BaggersListEntryTest { BaggersListEntry entry; @Before public void setup() { Website website = new Website(); website.url = "http://www.nilhcem.com"; Session session = new Session(); session.title = "Work hard,"; session.summary = "Have fun!"; Bagger bagger = new Bagger(); bagger.name = "Gautier"; bagger.picture = "http://www.nilhcem.com/img.jpg"; bagger.websites = Arrays.asList(website); bagger.sessions = Arrays.asList(session); bagger.bio = "Software Craftsman"; bagger.location = "Franconville"; bagger.contacts = new Contact(); bagger.contacts.twitter = "Nilhcem"; bagger.contacts.mail = "me@example.com"; entry = new BaggersListEntry(RuntimeEnvironment.application, bagger); } @Test public void should_restore_from_parcelable() { // Given String name = entry.name.toString(); String links = entry.links.toString(); String sessions = entry.sessions.toString(); String bio = entry.bio.toString(); String locations = entry.locations.toString(); String pictureUrl = entry.pictureUrl; String email = entry.email; // When Parcel parcel = Parcel.obtain(); entry.writeToParcel(parcel, 0); parcel.setDataPosition(0); // Then BaggersListEntry fromParcel = BaggersListEntry.CREATOR.createFromParcel(parcel); Spanned htmlLocation = CompatibilityUtils.fromHtml(String.format(Locale.US, RuntimeEnvironment.application.getString(R.string.baggers_list_location), "Franconville")); assertThat(fromParcel.name.toString()).isEqualTo(name); assertThat(fromParcel.name.toString()).isEqualTo("Gautier"); assertThat(fromParcel.links.toString()).isEqualTo(links); assertThat(fromParcel.sessions.toString()).isEqualTo(sessions); assertThat(fromParcel.bio.toString()).isEqualTo(bio); assertThat(fromParcel.bio.toString()).isEqualTo("Software Craftsman"); assertThat(fromParcel.locations.toString()).isEqualTo(locations); assertThat(fromParcel.locations.toString()).isEqualTo(htmlLocation.toString()); assertThat(fromParcel.pictureUrl).isEqualTo(pictureUrl); assertThat(fromParcel.pictureUrl).isEqualTo("http://www.nilhcem.com/img.jpg"); assertThat(fromParcel.email).isEqualTo(email); assertThat(fromParcel.email).isEqualTo("me@example.com"); } }