package net.dossot.jbound;
import net.dossot.jbound.api.EXERCISE;
import net.dossot.jbound.api.Exercises;
import net.dossot.jbound.api.JBound;
import net.dossot.jbound.subject.BeanWithUnsupportedDataType;
import net.dossot.jbound.subject.DefensiveBean;
import net.dossot.jbound.subject.DefensiveBeanWithWeakConstructor;
import net.dossot.jbound.subject.FragileBean;
import net.dossot.jbound.subject.ImmutableBean;
import net.dossot.jbound.subject.MutableBean;
import net.dossot.jbound.subject.PlainMutableBean;
import org.junit.BeforeClass;
import org.junit.Test;
public class AllBeanTests
{
@Test
public void fullyExerciseBeans()
{
JBound.run(new Exercises()
{
{
forClasses(MutableBean.class, PlainMutableBean.class, ImmutableBean.class,
DefensiveBean.class);
}
});
}
@Test
public void exerciseBeanWithSkippingAndAccepting()
{
JBound.run(new Exercises()
{
{
forClass(FragileBean.class).skipping(EXERCISE.EQUALS, EXERCISE.HASHCODE, EXERCISE.TO_STRING)
.acceptingGenericExceptionsFrom(
"public org.jbound.subject.FragileBean(java.lang.String,int,java.lang.Integer,java.util.List)",
"public java.lang.String org.jbound.subject.FragileBean.getString()",
"public void org.jbound.subject.FragileBean.setString(java.lang.String)");
}
});
}
@Test
public void exerciseBeanWithAccepting()
{
JBound.run(new Exercises()
{
{
forClass(DefensiveBeanWithWeakConstructor.class).acceptingGenericExceptionsFrom(
"public org.jbound.subject.DefensiveBeanWithWeakConstructor(java.lang.String,int,java.lang.Integer,java.util.List)");
}
});
}
@BeforeClass
public static void registerCustomDataType()
{
JBound.registerCustomDataType(ImmutableBean.class, null, new ImmutableBean(null, 0, null, null));
}
@Test(expected = AssertionError.class)
public void exerciseBeanWithUnsupportedDataType()
{
JBound.run(new Exercises()
{
{
forClass(BeanWithUnsupportedDataType.class);
}
});
}
}