package io.lqd.sdk.model; import org.json.JSONObject; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import java.util.HashMap; import io.lqd.sdk.factory.FactoryGirl; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertTrue; @Config(manifest = "../AndroidManifest.xml") @RunWith(RobolectricTestRunner.class) public class LQUserTest { private LQUser user; private HashMap<String, Object> attrs; @Before public void setUp() { user = FactoryGirl.createUser(); attrs = new HashMap<String, Object>(); attrs.put("teste1", 1); attrs.put("teste2", 1); attrs.put("teste3", 1); } // User with unique_id only @Test public void testToJSON() { JSONObject json = user.toJSON(); assertTrue(json.has("unique_id")); } // User with custom attrs @Test public void testToJSONAttrs() { user = new LQUser("123", attrs); JSONObject json = user.toJSON(); assertTrue(json.has("unique_id")); assertTrue(json.has("teste1")); assertTrue(json.has("teste2")); assertTrue(json.has("teste3")); } @Test public void testLoadFail() { assertNotNull(Robolectric.application); LQUser prevUser = new LQUser("le_id"); prevUser.save(Robolectric.application, "le_user"); Robolectric.application.deleteFile("le_user.user"); LQUser savedUser = LQUser.load(Robolectric.application,"le_user"); assertNotSame(savedUser.getIdentifier(), prevUser.getIdentifier()); } @Test public void testSaveSuccess() { user.save(Robolectric.application, "le_user"); LQUser savedUser = LQUser.load(Robolectric.application, "le_user"); assertTrue(user.equals(savedUser)); } @Test public void attributesNotNull() { user.setAttributes(null); assertNotNull(user.getAttributes()); } @Test public void attributesNotNullLoad() { user.setAttributes(null); user.save(Robolectric.application, "le_user"); LQUser loaded = user.load(Robolectric.application, "le_user"); assertNotNull(loaded.getAttributes()); } }