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 CRTabTest extends CRBaseTest<CRTab> {
private final CRTab tab;
private final CRTab invalidTabNoName;
private final CRTab invalidTabNoPath;
public CRTabTest()
{
tab = new CRTab("results","test.xml");
invalidTabNoName = new CRTab(null,"test.xml");
invalidTabNoPath = new CRTab("results",null);
}
@Override
public void addGoodExamples(Map<String, CRTab> examples) {
examples.put("tab",tab);
}
@Override
public void addBadExamples(Map<String, CRTab> examples) {
examples.put("invalidTabNoName",invalidTabNoName);
examples.put("invalidTabNoPath",invalidTabNoPath);
}
@Test
public void shouldDeserializeFromAPILikeObject()
{
String json = "{\n" +
" \"name\": \"cobertura\",\n" +
" \"path\": \"target/site/cobertura/index.html\"\n" +
" }";
CRTab deserializedValue = gson.fromJson(json,CRTab.class);
assertThat(deserializedValue.getName(),is("cobertura"));
assertThat(deserializedValue.getPath(),is("target/site/cobertura/index.html"));
ErrorCollection errors = deserializedValue.getErrors();
assertTrue(errors.isEmpty());
}
}