package no.niths.infrastructure.signaling;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import no.niths.common.config.HibernateConfig;
import no.niths.common.config.TestAppConfig;
import no.niths.domain.signaling.AccessField;
import no.niths.infrastructure.signaling.interfaces.AccessFieldRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { TestAppConfig.class, HibernateConfig.class })
@Transactional
public class AccessFieldRepositoryTest {
@Autowired
private AccessFieldRepository repo;
@Test
public void testCRUD() {
final int size = repo.getAll(null).size();
final Integer exampleMaxRange = 2;
// Create
AccessField accessField1 = new AccessField(1, exampleMaxRange);
repo.create(accessField1);
assertEquals(size + 1, repo.getAll(null).size());
Long accessField1Id = accessField1.getId();
// Read
AccessField accessField2 = repo.getById(accessField1Id);
assertEquals(accessField1Id, accessField2.getId());
// Update
AccessField accessField3 = new AccessField();
accessField3.setMaxRange(exampleMaxRange);
assertEquals(accessField1, repo.getAll(accessField3).get(0));
// Delete
assertTrue(repo.delete(accessField1Id));
assertEquals(size, repo.getAll(null).size());
assertEquals(0, repo.getAll(accessField3).size());
}
}