package com.thoughtworks.go.plugin.access.configrepo.contract; import com.thoughtworks.go.plugin.access.configrepo.ErrorCollection; import org.junit.Test; import java.util.Map; import static junit.framework.TestCase.assertTrue; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; public class CRMingleTest extends CRBaseTest<CRMingle> { private final CRMingle mingle; private final CRMingle invalidNoUrl; private final CRMingle invalidNoId; public CRMingleTest() { mingle = new CRMingle("http://mingle.example.com","my_project"); invalidNoUrl = new CRMingle(null,"my_project"); invalidNoId = new CRMingle("http://mingle.example.com",null); } @Override public void addGoodExamples(Map<String, CRMingle> examples) { examples.put("mingle",mingle); } @Override public void addBadExamples(Map<String, CRMingle> examples) { examples.put("invalidNoUrl",invalidNoUrl); examples.put("invalidNoId",invalidNoId); } @Test public void shouldDeserializeFromAPILikeObject() { String json = "{\n" + " \"base_url\": \"https://mingle.example.com\",\n" + " \"project_identifier\": \"foobar_widgets\",\n" + " \"mql_grouping_conditions\": \"status > 'In Dev'\"\n" + " }"; CRMingle deserializedValue = gson.fromJson(json,CRMingle.class); assertThat(deserializedValue.getBaseUrl(),is("https://mingle.example.com")); assertThat(deserializedValue.getProjectIdentifier(),is("foobar_widgets")); assertThat(deserializedValue.getMqlGroupingConditions(),is("status > 'In Dev'")); ErrorCollection errors = deserializedValue.getErrors(); assertTrue(errors.isEmpty()); } }