package hudson.plugins.tfs.model; import hudson.plugins.tfs.util.TeamRestClient; import org.junit.Assert; import org.junit.Test; /** * A class to test {@link TeamGitStatus}. */ public class TeamGitStatusTest { @Test public void toJson_typical() { final TeamGitStatus cut = new TeamGitStatus(); cut.state = GitStatusState.Pending; cut.description = "The build is in progress"; cut.targetUrl = "https://ci.fabrikam.com/my-project/build/124"; cut.context = new GitStatusContext("Build124", "continuous-integration"); final String actual = cut.toJson(); final String expected = "{" + "\"state\":\"Pending\"," + "\"description\":\"The build is in progress\"," + "\"targetUrl\":\"https://ci.fabrikam.com/my-project/build/124\"," + "\"context\":" + "{" + "\"name\":\"Build124\"," + "\"genre\":\"continuous-integration\"" + "}" + "}"; Assert.assertEquals(expected, actual); } @Test public void fromJsonString_server() throws Exception { final String input = "{" + "\"state\":\"succeeded\"," + "\"description\":\"SUCCESS\"," + "\"targetUrl\":\"https://ci.fabrikam.com/my-project/build/124\"," + "\"context\":" + "{" + "\"name\":\"Build124\"," + "\"genre\":\"continuous-integration\"" + "}" + "}"; final TeamGitStatus actual = TeamRestClient.deserialize(TeamGitStatus.class, input); Assert.assertEquals(GitStatusState.Succeeded, actual.state); } }