package qls.tests;
import org.junit.Test;
import ql.ast.type.*;
import qls.ast.rule.*;
import qls.ast.rule.widget.*;
import java.math.BigDecimal;
import static junit.framework.TestCase.assertTrue;
import static org.junit.Assert.assertFalse;
/**
* Created by bore on 29/03/15.
*/
public class Rule
{
private static final BoolType boolType = new BoolType();
private static final IntType intType = new IntType();
private static final DecType decType = new DecType();
private static final StrType strType = new StrType();
private static final Width width100 = new Width(100, 0);
private static final Width width50 = new Width(50, 0);
private static final BackColor backColorBlue = new BackColor(new ColorValue("#0000FF"), 0);
private static final BackColor backColorRed = new BackColor(new ColorValue("#FF0000"), 0);
private static final ForeColor foreColorBlue = new ForeColor(new ColorValue("#0000FF"), 0);
private static final ForeColor foreColorRed = new ForeColor(new ColorValue("#FF0000"), 0);
private static final Font fontArial = new Font("Arial", 0);
private static final Font fontComic = new Font("Comic Sans", 0);
private static final FontSize fontSize10 = new FontSize(10, 0);
private static final FontSize fontSize15 = new FontSize(15, 0);
private static final Widget widgetRadio = new Widget(new Radio("y", "n"), 0);
private static final Widget widgetTextbox = new Widget(new Textbox(), 0);
@Test
public void widthOverwrittenByWidth()
{
assertTrue(width100.isOverwrittenBy(width50));
}
@Test
public void foreColorOverwrittenByForeColor()
{
assertTrue(foreColorBlue.isOverwrittenBy(foreColorRed));
}
@Test
public void backColorOverwrittenByBackColor()
{
assertTrue(backColorBlue.isOverwrittenBy(backColorRed));
}
@Test
public void fontOverwrittenByFont()
{
assertTrue(fontArial.isOverwrittenBy(fontComic));
}
@Test
public void fontSizeOverwrittenByFontSize()
{
assertTrue(fontSize10.isOverwrittenBy(fontSize15));
}
@Test
public void widgetOverwrittenByWidget()
{
assertTrue(widgetRadio.isOverwrittenBy(widgetTextbox));
}
@Test
public void widgetNotOverwrittenByFont()
{
assertFalse(widgetRadio.isOverwrittenBy(fontArial));
}
@Test
public void fontNotOverwrittenByFontSize()
{
assertFalse(fontArial.isOverwrittenBy(fontSize15));
}
@Test
public void fontSizeNotOverwrittenByFont()
{
assertFalse(fontSize15.isOverwrittenBy(fontArial));
}
@Test
public void backColorNotOverwrittenByForeColor()
{
assertFalse(backColorRed.isOverwrittenBy(foreColorBlue));
}
@Test
public void foreColorNotOverwrittenByBackColor()
{
assertFalse(foreColorBlue.isOverwrittenBy(backColorRed));
}
@Test
public void widgetNotOverwrittenByWidth()
{
assertFalse(widgetRadio.isOverwrittenBy(width100));
}
@Test
public void widthNotOverwrittenByWidget()
{
assertFalse(width100.isOverwrittenBy(widgetRadio));
}
@Test
public void isWidthCompatibleWithIntType()
{
assertTrue(width100.isCompatibleWithType(intType));
}
@Test
public void isWidthCompatibleWithBoolType()
{
assertTrue(width100.isCompatibleWithType(boolType));
}
@Test
public void isWidthCompatibleWithStrType()
{
assertTrue(width100.isCompatibleWithType(strType));
}
@Test
public void isWidthCompatibleWithDecType()
{
assertTrue(width100.isCompatibleWithType(decType));
}
@Test
public void isFontCompatibleWithIntType()
{
assertTrue(fontArial.isCompatibleWithType(intType));
}
@Test
public void isFontCompatibleWithBoolType()
{
assertTrue(fontArial.isCompatibleWithType(boolType));
}
@Test
public void isFontCompatibleWithStrType()
{
assertTrue(fontArial.isCompatibleWithType(strType));
}
@Test
public void isFontCompatibleWithDecType()
{
assertTrue(fontArial.isCompatibleWithType(decType));
}
@Test
public void isFontSizeCompatibleWithIntType()
{
assertTrue(fontSize10.isCompatibleWithType(intType));
}
@Test
public void isFontSizeCompatibleWithBoolType()
{
assertTrue(fontSize10.isCompatibleWithType(boolType));
}
@Test
public void isFontSizeCompatibleWithStrType()
{
assertTrue(fontSize10.isCompatibleWithType(strType));
}
@Test
public void isFontSizeCompatibleWithDecType()
{
assertTrue(fontSize10.isCompatibleWithType(decType));
}
@Test
public void isForeColorCompatibleWithIntType()
{
assertTrue(foreColorBlue.isCompatibleWithType(intType));
}
@Test
public void isForeColorCompatibleWithBoolType()
{
assertTrue(foreColorBlue.isCompatibleWithType(boolType));
}
@Test
public void isForeColorCompatibleWithStrType()
{
assertTrue(foreColorBlue.isCompatibleWithType(strType));
}
@Test
public void isForeColorCompatibleWithDecType()
{
assertTrue(foreColorBlue.isCompatibleWithType(decType));
}
@Test
public void isBackColorCompatibleWithIntType()
{
assertTrue(backColorBlue.isCompatibleWithType(intType));
}
@Test
public void isBackColorCompatibleWithBoolType()
{
assertTrue(backColorBlue.isCompatibleWithType(boolType));
}
@Test
public void isBackColorCompatibleWithStrType()
{
assertTrue(backColorBlue.isCompatibleWithType(strType));
}
@Test
public void isBackColorCompatibleWithDecType()
{
assertTrue(backColorBlue.isCompatibleWithType(decType));
}
@Test
public void isIntSliderCompatibleWithIntType()
{
Widget intSliderWidget = new Widget(new IntSlider(0, 100, 1), 0);
assertTrue(intSliderWidget.isCompatibleWithType(intType));
}
@Test
public void isIntSliderCompatibleWithBoolType()
{
Widget intSliderWidget = new Widget(new IntSlider(0, 100, 1), 0);
assertFalse(intSliderWidget.isCompatibleWithType(boolType));
}
@Test
public void isIntSliderCompatibleWithStrType()
{
Widget intSliderWidget = new Widget(new IntSlider(0, 100, 1), 0);
assertFalse(intSliderWidget.isCompatibleWithType(strType));
}
@Test
public void isIntSliderCompatibleWithDecType()
{
Widget intSliderWidget = new Widget(new IntSlider(0, 100, 1), 0);
assertTrue(intSliderWidget.isCompatibleWithType(decType));
}
@Test
public void isDecSliderCompatibleWithIntType()
{
Widget decSliderWidget = new Widget(new DecSlider(BigDecimal.ONE, BigDecimal.ONE, BigDecimal.ONE), 0);
assertTrue(decSliderWidget.isCompatibleWithType(intType));
}
@Test
public void isDecSliderCompatibleWithBoolType()
{
Widget decSliderWidget = new Widget(new DecSlider(BigDecimal.ONE, BigDecimal.ONE, BigDecimal.ONE), 0);
assertFalse(decSliderWidget.isCompatibleWithType(boolType));
}
@Test
public void isDecSliderCompatibleWithStrType()
{
Widget decSliderWidget = new Widget(new DecSlider(BigDecimal.ONE, BigDecimal.ONE, BigDecimal.ONE), 0);
assertFalse(decSliderWidget.isCompatibleWithType(strType));
}
@Test
public void isDecSliderCompatibleWithDecType()
{
Widget decSliderWidget = new Widget(new DecSlider(BigDecimal.ONE, BigDecimal.ONE, BigDecimal.ONE), 0);
assertTrue(decSliderWidget.isCompatibleWithType(decType));
}
@Test
public void isRadioCompatibleWithIntType()
{
Widget radioWidget = new Widget(new Radio("y", "n"), 0);
assertFalse(radioWidget.isCompatibleWithType(intType));
}
@Test
public void isRadioCompatibleWithBoolType()
{
Widget radioWidget = new Widget(new Radio("y", "n"), 0);
assertTrue(radioWidget.isCompatibleWithType(boolType));
}
@Test
public void isRadioCompatibleWithStrType()
{
Widget radioWidget = new Widget(new Radio("y", "n"), 0);
assertFalse(radioWidget.isCompatibleWithType(strType));
}
@Test
public void isRadioCompatibleWithDecType()
{
Widget radioWidget = new Widget(new Radio("y", "n"), 0);
assertFalse(radioWidget.isCompatibleWithType(decType));
}
@Test
public void isCheckboxCompatibleWithIntType()
{
Widget checkboxWidget = new Widget(new Checkbox(), 0);
assertFalse(checkboxWidget.isCompatibleWithType(intType));
}
@Test
public void isCheckboxCompatibleWithBoolType()
{
Widget checkboxWidget = new Widget(new Checkbox(), 0);
assertTrue(checkboxWidget.isCompatibleWithType(boolType));
}
@Test
public void isCheckboxCompatibleWithStrType()
{
Widget checkboxWidget = new Widget(new Checkbox(), 0);
assertFalse(checkboxWidget.isCompatibleWithType(strType));
}
@Test
public void isCheckboxCompatibleWithDecType()
{
Widget checkboxWidget = new Widget(new Checkbox(), 0);
assertFalse(checkboxWidget.isCompatibleWithType(decType));
}
@Test
public void isDropdownCompatibleWithIntType()
{
Widget dropdownWidget = new Widget(new Dropdown("y", "n"), 0);
assertFalse(dropdownWidget.isCompatibleWithType(intType));
}
@Test
public void isDropdownCompatibleWithBoolType()
{
Widget dropdownWidget = new Widget(new Dropdown("y", "n"), 0);
assertTrue(dropdownWidget.isCompatibleWithType(boolType));
}
@Test
public void isDropdownCompatibleWithStrType()
{
Widget dropdownWidget = new Widget(new Dropdown("y", "n"), 0);
assertFalse(dropdownWidget.isCompatibleWithType(strType));
}
@Test
public void isDropdownCompatibleWithDecType()
{
Widget dropdownWidget = new Widget(new Dropdown("y", "n"), 0);
assertFalse(dropdownWidget.isCompatibleWithType(decType));
}
@Test
public void isTextboxCompatibleWithIntType()
{
Widget textboxWidget = new Widget(new Textbox(), 0);
assertTrue(textboxWidget.isCompatibleWithType(intType));
}
@Test
public void isTextboxCompatibleWithBoolType()
{
Widget textboxWidget = new Widget(new Textbox(), 0);
assertFalse(textboxWidget.isCompatibleWithType(boolType));
}
@Test
public void isTextboxCompatibleWithStrType()
{
Widget textboxWidget = new Widget(new Textbox(), 0);
assertTrue(textboxWidget.isCompatibleWithType(strType));
}
@Test
public void isTextboxCompatibleWithDecType()
{
Widget textboxWidget = new Widget(new Textbox(), 0);
assertTrue(textboxWidget.isCompatibleWithType(decType));
}
}