package com.rapidftr.form; import static org.junit.Assert.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.json.me.JSONArray; import org.json.me.JSONException; import org.json.me.JSONObject; import org.junit.Test; import org.mockito.Mockito; public class FormFieldTest { @Test public void getOptions() throws Exception { FormField field = new FormField(new JSONObject( "{option_strings:['one', 'two']}")); final boolean[] hasOption = { false }; field.forEachOption(new OptionAction() { @Override public void execute(String option) { hasOption[0] = true; assertNotNull(option); } }); assertTrue(hasOption[0]); } @Test public void getOptionsArray() throws Exception { FormField field = new FormField(new JSONObject( "{option_strings:['one', 'two']}")); String[] options = field.getOptionsArray(); assertEquals("one", options[0]); assertEquals("two", options[1]); } @Test public void ignoreInvalidOptionStrings() throws Exception { JSONObject jsonObject = Mockito.mock(JSONObject.class); Mockito.when(jsonObject.getString("option_strings")).thenThrow( new JSONException("")); FormField formField = new FormField(jsonObject); formField.forEachOption(new OptionAction() { @Override public void execute(String option) { fail("Should ignore invalid options"); } }); } @Test public void verifyOptions() throws Exception { FormField field = new FormField(new JSONObject( "{option_strings:['one']}")); field.forEachOption(new OptionAction() { @Override public void execute(String option) { assertEquals("one", option); } }); } }