package uk.ac.ox.zoo.seeg.abraid.mp.common.dao;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import uk.ac.ox.zoo.seeg.abraid.mp.common.AbstractCommonSpringIntegrationTests;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.Provenance;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests the ProvenanceDao class.
*
* Copyright (c) 2014 University of Oxford
*/
public class ProvenanceDaoTest extends AbstractCommonSpringIntegrationTests {
@Autowired
private ProvenanceDao provenanceDao;
@Test
public void saveAndReloadProvenance() {
// Arrange
String provenanceName = "Test provenance";
Provenance provenance = new Provenance();
provenance.setName(provenanceName);
// Act
provenanceDao.save(provenance);
// Assert
assertThat(provenance.getCreatedDate()).isNotNull();
Integer id = provenance.getId();
flushAndClear();
provenance = provenanceDao.getByName(provenanceName);
assertThat(provenance).isNotNull();
assertThat(provenance.getId()).isNotNull();
assertThat(provenance.getId()).isEqualTo(id);
assertThat(provenance.getName()).isEqualTo(provenanceName);
assertThat(provenance.getCreatedDate()).isNotNull();
}
@Test
public void loadNonExistentProvenance() {
String provenanceName = "This provenance does not exist";
Provenance provenance = provenanceDao.getByName(provenanceName);
assertThat(provenance).isNull();
}
@Test
public void getAllProvenances() {
List<Provenance> provenances = provenanceDao.getAll();
assertThat(provenances).hasSize(3);
}
}