import org.sonar.test.DbTests;
import java.util.List;
+import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
dbTester.prepareDbUnit(getClass(), "empty.xml");
dao.insert(session, new ComponentLinkDto()
- .setComponentUuid("ABCD")
- .setType("homepage")
- .setName("Home")
- .setHref("http://www.sonarqube.org")
+ .setComponentUuid("ABCD")
+ .setType("homepage")
+ .setName("Home")
+ .setHref("http://www.sonarqube.org")
);
session.commit();
- dbTester.assertDbUnit(getClass(), "insert.xml", "project_links");
+ // For an unknown reason, on MySQL the id of the links is set to 2, so we can't use assertDbUnit() to check inserted values
+ Map<String, Object> result = dbTester.selectFirst("select id as \"id\", component_uuid as \"componentUuid\", link_type as \"type\", name as \"name\", href as \"href\" from project_links");
+ assertThat(result.get("id")).isNotNull();
+ assertThat(result.get("componentUuid")).isEqualTo("ABCD");
+ assertThat(result.get("type")).isEqualTo("homepage");
+ assertThat(result.get("name")).isEqualTo("Home");
+ assertThat(result.get("href")).isEqualTo("http://www.sonarqube.org");
}
@Test
VALUES (#{componentUuid,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{href,jdbcType=VARCHAR})
</insert>
- <insert id="update" parameterType="ComponentLink" keyColumn="id" useGeneratedKeys="true" keyProperty="id">
+ <insert id="update" parameterType="ComponentLink" useGeneratedKeys="false">
UPDATE project_links SET component_uuid=#{componentUuid,jdbcType=VARCHAR}, link_type=#{type,jdbcType=VARCHAR}, name=#{name,jdbcType=VARCHAR}, href=#{href,jdbcType=VARCHAR}
WHERE id=#{id}
</insert>