/******************************************************************************* * Australian National University Data Commons * Copyright (C) 2013 The Australian National University * * This file is part of Australian National University Data Commons. * * Australian National University Data Commons is free software: you * can redistribute it and/or modify it under the terms of the GNU * General Public License as published by the Free Software Foundation, * either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. ******************************************************************************/ package au.edu.anu.datacommons.data.db.model; import static org.junit.Assert.*; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author u5125986 * */ public class UsersTest { static final Logger LOGGER = LoggerFactory.getLogger(UsersTest.class); EntityManagerFactory entityManagerFactory; EntityManager entityManager; /** * setUp * * Performs functions prior to starting the test * * <pre> * Version Date Developer Description * 0.1 17/05/2012 Genevieve Turner (GT) Initial * </pre> */ @Before public void setUp() { entityManagerFactory = Persistence.createEntityManagerFactory("datacommons-test"); entityManager = entityManagerFactory.createEntityManager(); } /** * test * * Performs a test on the users ant user_registered tables * * <pre> * Version Date Developer Description * 0.1 17/05/2012 Genevieve Turner (GT) Initial * </pre> */ @Test public void test() { UserRegistered user_registered = new UserRegistered(); user_registered.setGiven_name("test"); user_registered.setLast_name("user"); Users user = new Users(); user.setUsername("testuser1"); user.setPassword("testpassword1"); user.setEnabled(Boolean.TRUE); user.setUser_type(new Long(2)); EntityTransaction entityTransaction = entityManager.getTransaction(); entityTransaction.begin(); entityManager.persist(user); entityTransaction.commit(); user_registered.setUser(user); user_registered.setId(user.getId()); user.setUser_registered(user_registered); entityTransaction.begin(); entityManager.persist(user); entityTransaction.commit(); LOGGER.info("After committing registered user"); List<Users> users = entityManager.createQuery("from Users where username='testuser1'", Users.class).getResultList(); for (Users savedUser : users) { assertEquals("testuser1", savedUser.getUsername()); assertEquals("testpassword1", savedUser.getPassword()); assertEquals(Boolean.TRUE, savedUser.getEnabled()); assertEquals(new Long(2), savedUser.getUser_type()); assertEquals("test", savedUser.getUser_registered().getGiven_name()); assertEquals("user", savedUser.getUser_registered().getLast_name()); entityTransaction.begin(); entityManager.remove(savedUser); entityTransaction.commit(); } } /** * tearDown * * Executes functions after creating the tests have been performed. * * <pre> * Version Date Developer Description * 0.1 17/05/2012 Genevieve Turner (GT) Initial * </pre> */ @After public void tearDown() { System.out.println("Executing tearDown"); if (entityManager != null) entityManager.close(); if (entityManagerFactory != null) entityManagerFactory.close(); } }