JdbcMapper/querymapper/src/test/java/com/moparisthebest/jdbc/FinalTest.java

65 lines
1.6 KiB
Java

package com.moparisthebest.jdbc;
import com.moparisthebest.jdbc.dto.FinalDTO;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;
/**
* This test ensures the way the java compiler in-lines final variables today
* is the same way it will in-line them tomorrow, since changes in this behavior
* might silently break classes that are filled with reflection.
*/
public class FinalTest {
private FinalDTO object;
@Before
public void before(){
object = new FinalDTO();
assertTrue(object.directEqualsReflection());
}
@Test
public void testFinalPrimitiveLongDirectCantBeSet() {
assertFalse(object.setField("finalPrimitiveLongDirect", 1L));
}
@Test
public void testFinalStringDirectCantBeSet() {
assertFalse(object.setField("finalStringDirect", "1"));
}
@Test
public void testEffectiveFinalPrimitiveLongDirectCanBeSet() {
assertTrue(object.setField("effectiveFinalPrimitiveLongDirect", 1L));
}
@Test
public void testEffectiveFinalStringDirectCanBeSet() {
assertTrue(object.setField("effectiveFinalStringDirect", "1"));
}
@Test
public void testFinalPrimitiveLongConstructorCanBeSet() {
assertTrue(object.setField("finalPrimitiveLongConstructor", 1L));
}
@Test
public void testFinalStringConstructorCanBeSet() {
assertTrue(object.setField("finalStringConstructor", "1"));
}
@Test
public void testFinalLongDirectCanBeSet() {
assertTrue(object.setField("finalLongDirect", 1L));
}
@Test
public void testFinalLongConstructorCanBeSet() {
assertTrue(object.setField("finalLongConstructor", 1L));
}
}