/*
* (c) Copyright 2005-2012 JAXIO, www.jaxio.com
* Source code generated by Celerio, a Jaxio product
* Want to use Celerio within your company? email us at info@jaxio.com
* Follow us on twitter: @springfuse
* Template pack-backend-sd:src/test/java/repository/RepositoryWithRealSessionTest.e.vm.java
*/
package com.company.demo.repository;
import static org.fest.assertions.Assertions.assertThat;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.apache.log4j.Logger;
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;
import com.google.common.collect.Sets;
import com.company.demo.domain.LegacyPk;
import com.company.demo.domain.Legacy;
import com.company.demo.repository.LegacyGenerator;
import com.company.demo.repository.LegacyRepository;
/**
* Integration test on {@link LegacyRepository}
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:spring/applicationContext-test.xml" })
@Transactional
public class LegacyRepositoryWithRealSessionTest {
@SuppressWarnings("unused")
private static final Logger log = Logger.getLogger(LegacyRepositoryWithRealSessionTest.class);
@PersistenceContext
private EntityManager entityManager;
@Autowired
private LegacyRepository legacyRepository;
@Autowired
private LegacyGenerator legacyGenerator;
@Test
public void identityShouldBePreserved() {
Legacy legacy = legacyGenerator.getLegacy();
// add it to a Set before saving (force equals/hashcode)
Sets.newHashSet(legacy);
legacyRepository.save(legacy);
entityManager.flush();
// reload it from cache and check equality
LegacyPk id = legacy.getLegacyPk();
assertThat(legacy).isEqualTo(legacyRepository.findOne(id));
// clear cache to force reload from db
entityManager.clear();
// since you use a business key, equality must be preserved.
assertThat(legacy).isEqualTo(legacyRepository.findOne(id));
}
}