package fr.mmarie.api.gitlab; import com.fasterxml.jackson.databind.ObjectMapper; import io.dropwizard.jackson.Jackson; import org.assertj.core.api.StrictAssertions; import org.junit.Test; import java.io.IOException; import static fr.mmarie.api.gitlab.RepositoryAssert.assertThat; import static io.dropwizard.testing.FixtureHelpers.fixture; import static org.assertj.core.api.Assertions.assertThat; public class RepositoryTest { private static final ObjectMapper MAPPER = Jackson.newObjectMapper(); @Test public void serializesToJSON() throws IOException { final Repository repository = Repository.builder() .name("Diaspora") .url("git@example.com:mike/diasporadiaspora.git") .description("") .homepage("http://example.com/mike/diaspora") .gitHttpUrl("http://example.com/mike/diaspora.git") .gitSshUrl("git@example.com:mike/diaspora.git") .visibilityLevel(0L) .build(); final String expected = MAPPER.writeValueAsString( MAPPER.readValue(fixture("fixtures/gitlab/repository.json"), Repository.class)); StrictAssertions.assertThat(MAPPER.writeValueAsString(repository)).isEqualTo(expected); } @Test public void deserializesFromJSON() throws IOException { final Repository repository = MAPPER.readValue(fixture("fixtures/gitlab/repository.json"), Repository.class); assertThat(repository) .hasName("Diaspora") .hasUrl("git@example.com:mike/diasporadiaspora.git") .hasDescription("") .hasHomepage("http://example.com/mike/diaspora") .hasGitHttpUrl("http://example.com/mike/diaspora.git") .hasGitSshUrl("git@example.com:mike/diaspora.git") .hasVisibilityLevel(0L); } @Test public void testToString() throws Exception { final Repository repository = Repository.builder() .name("Diaspora") .url("git@example.com:mike/diasporadiaspora.git") .description("") .homepage("http://example.com/mike/diaspora") .gitHttpUrl("http://example.com/mike/diaspora.git") .gitSshUrl("git@example.com:mike/diaspora.git") .visibilityLevel(0L) .build(); assertThat(repository.toString()).isEqualTo("Repository(name=Diaspora)"); } }