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 CRTrackingToolTest extends CRBaseTest<CRTrackingTool> {
private final CRTrackingTool tracking;
private final CRTrackingTool invalidNoLink;
private final CRTrackingTool invalidNoRegex;
public CRTrackingToolTest()
{
tracking = new CRTrackingTool("http://your-trackingtool/yourproject/${ID}","evo-(\\d+)");
invalidNoLink = new CRTrackingTool(null, "evo-(\\d+)");
invalidNoRegex = new CRTrackingTool("http://your-trackingtool/yourproject/${ID}",null);
}
@Override
public void addGoodExamples(Map<String, CRTrackingTool> examples) {
examples.put("tracking",tracking);
}
@Override
public void addBadExamples(Map<String, CRTrackingTool> examples) {
examples.put("invalidNoLink",invalidNoLink);
examples.put("invalidNoRegex",invalidNoRegex);
}
@Test
public void shouldDeserializeFromAPILikeObject()
{
String json = "{\n" +
" \"link\": \"https://github.com/gocd/api.go.cd/issues/${ID}\",\n" +
" \"regex\": \"##(d+)\"\n" +
" }";
CRTrackingTool deserializedValue = gson.fromJson(json,CRTrackingTool.class);
assertThat(deserializedValue.getLink(),is("https://github.com/gocd/api.go.cd/issues/${ID}"));
assertThat(deserializedValue.getRegex(),is("##(d+)"));
ErrorCollection errors = deserializedValue.getErrors();
assertTrue(errors.isEmpty());
}
}