package com.hazelcast.samples.spring.data.migration; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.repository.CrudRepository; import org.springframework.test.context.junit4.SpringRunner; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertThat; /** * Test CRUD operations against a Spring repository for {@link Verb} * * <u><b>MIGRATION PATH</b></u> * <ol> * <li>No changes required.</li> * </ol> */ @RunWith(SpringRunner.class) @SpringBootTest(classes = {Object.class}) public abstract class AbstractVerbRepositoryTest { protected static Verb invite; private Logger log; private CrudRepository<Verb, Integer> verbRepository; @BeforeClass public static void setUpBeforeClass() throws Exception { invite = new Verb(); invite.setId(1); invite.setEnglish("invite"); invite.setFrench("inviter"); invite.setSpanish("invitar"); invite.setTense(Tense.PRESENT); } public void setUp(CrudRepository<Verb, Integer> arg0, Logger arg1) { this.verbRepository = arg0; this.log = arg1; } @Test public void curd() { assertThat("Empty before", this.verbRepository.count(), equalTo(0L)); this.verbRepository.save(invite); assertThat("Not empty during", this.verbRepository.count(), equalTo(1L)); Verb invite2 = this.verbRepository.findOne(invite.getId()); this.log.info("curd(), read {}", invite2); assertThat(invite2, not(nullValue())); assertThat("System.identityHashCode", System.identityHashCode(invite2), not(equalTo(System.identityHashCode(invite)))); assertThat(invite2, equalTo(invite)); this.verbRepository.delete(invite.getId()); assertThat("Empty after", this.verbRepository.count(), equalTo(0L)); } }