package com.thoughtworks.go.plugin.access.configrepo.contract;
import com.thoughtworks.go.plugin.access.configrepo.ErrorCollection;
import com.thoughtworks.go.plugin.access.configrepo.contract.CRBaseTest;
import com.thoughtworks.go.plugin.access.configrepo.contract.CRTimer;
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 CRTimerTest extends CRBaseTest<CRTimer> {
private final CRTimer timer;
private final CRTimer invalidNoTimerSpec;
public CRTimerTest()
{
timer = new CRTimer("0 15 10 * * ? *");
invalidNoTimerSpec = new CRTimer();
}
@Override
public void addGoodExamples(Map<String, CRTimer> examples) {
examples.put("timer",timer);
}
@Override
public void addBadExamples(Map<String, CRTimer> examples) {
examples.put("invalidNoTimerSpec",invalidNoTimerSpec);
}
@Test
public void shouldDeserializeFromAPILikeObject()
{
String json = "{\n" +
" \"spec\": \"0 0 22 ? * MON-FRI\",\n" +
" \"only_on_changes\": true\n" +
" }";
CRTimer deserializedValue = gson.fromJson(json,CRTimer.class);
assertThat(deserializedValue.getTimerSpec(),is("0 0 22 ? * MON-FRI"));
assertThat(deserializedValue.isOnlyOnChanges(),is(true));
ErrorCollection errors = deserializedValue.getErrors();
assertTrue(errors.isEmpty());
}
}