package de.hilling.cdi.sampleapp.ejb;
import de.hilling.cdi.sampleapp.UserRegistrationEntity;
import de.hilling.junit.cdi.CdiUnitRunner;
import de.hilling.junit.cdi.annotations.GlobalTestImplementation;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
@RunWith(CdiUnitRunner.class)
public class RegistrationServiceUnitTest {
public static final String NAME = "Gunnar";
@Inject
private RegistrationService registrationService;
@Inject
private EntityManager entityManager;
private List<UserRegistrationEntity> allUsers;
private void assertDatabaseSize(int expectedSize) {
allUsers = entityManager.createQuery("select e from UserRegistrationEntity e").getResultList();
assertEquals(expectedSize, allUsers.size());
}
@Test
public void testSayHello() throws Exception {
assertDatabaseSize(0);
registrationService.register(NAME);
entityManager.flush();
assertDatabaseSize(1);
UserRegistrationEntity entity = allUsers.get(0);
assertEquals("Hello " + NAME, entity.getUserName());
assertEquals(1, entity.getId());
}
@Test
public void testSayHelloTwice() throws Exception {
assertDatabaseSize(0);
registrationService.register(NAME);
entityManager.flush();
assertDatabaseSize(1);
}
}