package org.nextprot.api.core.dao;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.nextprot.api.core.domain.PublicationAuthor;
import org.nextprot.api.core.test.base.CoreUnitBaseTest;
import org.springframework.beans.factory.annotation.Autowired;
import com.github.springtestdbunit.annotation.DatabaseOperation;
import com.github.springtestdbunit.annotation.DatabaseSetup;
/*
* This test requires the following view to be created in db_unit database
*
CREATE TABLE "nextprot"."view_paper_scale"
(
publication_id bigint,
num_entries bigint,
is_largescale int
)
;
CREATE INDEX fk1_v_pap_pubs ON "nextprot"."view_paper_scale"(publication_id)
;
*/
@DatabaseSetup(value = "AuthorDaoTest.xml", type = DatabaseOperation.INSERT)
public class AuthorDaoTest extends CoreUnitBaseTest {
@Autowired private AuthorDao authorDao;
@Test
public void findAuthorsByPublicationId() {
List<PublicationAuthor> authors = this.authorDao.findAuthorsByPublicationId(106L);
assertEquals(2, authors.size());
assertEquals("Luke", authors.get(0).getLastName());
assertEquals("Lucky", authors.get(0).getForeName());
assertEquals("Montana", authors.get(1).getLastName());
assertEquals("Toni", authors.get(1).getForeName());
}
@Test
public void findAuthorsByPublicationIds() {
List<Long> publicationIds = new ArrayList<Long>();
publicationIds.add(106L);
publicationIds.add(107L);
List<PublicationAuthor> authors = this.authorDao.findAuthorsByPublicationIds(publicationIds);
assertEquals(3, authors.size());
assertEquals("Luke", authors.get(0).getLastName());
assertEquals("Lucky", authors.get(0).getForeName());
assertEquals("Montana", authors.get(1).getLastName());
assertEquals("Toni", authors.get(1).getForeName());
assertEquals("Han", authors.get(2).getForeName());
assertEquals("Solo", authors.get(2).getLastName());
}
}