package com.example.pocketknife; import android.content.Intent; import android.os.Bundle; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import pocketknife.PocketKnife; import java.util.UUID; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; @RunWith(RobolectricTestRunner.class) @Config(manifest = "src/main/AndroidManifest.xml") public class BeanAccessTest { @Test public void testSaveState() { String s = UUID.randomUUID().toString(); BeanAccess beanAccess1 = new BeanAccess(); beanAccess1.setSaveString(s); Bundle bundle = new Bundle(); PocketKnife.saveInstanceState(beanAccess1, bundle); BeanAccess beanAccess2 = new BeanAccess(); beanAccess2.setSaveString(""); assertNotEquals(s, beanAccess2.getSaveString()); PocketKnife.restoreInstanceState(beanAccess2, bundle); assertEquals(s, beanAccess2.getSaveString()); } @Test public void testBindExtras() { String s1 = UUID.randomUUID().toString(); String s2 = UUID.randomUUID().toString(); BeanAccess beanAccess = new BeanAccess(); Intent intent = new Intent(); intent.putExtra("EXTRA_EXTRA_STRING", s1); new StringSerializer().put(intent, s2, BeanAccess.INTENT_KEY); assertNotEquals(s1, beanAccess.getExtraString()); assertNotEquals(s2, beanAccess.getIsString()); PocketKnife.bindExtras(beanAccess, intent); assertEquals(s1, beanAccess.getExtraString()); assertEquals(s2, beanAccess.getIsString()); } @Test public void testBindArgs() { String s1 = UUID.randomUUID().toString(); String s2 = UUID.randomUUID().toString(); String s3 = UUID.randomUUID().toString(); BeanAccess beanAccess = new BeanAccess(); Bundle bundle = new Bundle(); bundle.putString("ARG_ARG_STRING", s1); new StringSerializer().put(bundle, s2, BeanAccess.ARG_KEY_1); bundle.putString(BeanAccess.ARG_KEY_2, s3); assertNotEquals(s1, beanAccess.getArgString()); assertNotEquals(s2, beanAccess.getBsString()); assertNotEquals(s3, beanAccess.pString); PocketKnife.bindArguments(beanAccess, bundle); assertEquals(s1, beanAccess.getArgString()); assertEquals(s2, beanAccess.getBsString()); assertEquals(s3, beanAccess.pString); } }