00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.gui.gauge;
00023
00024 import org.jetbrains.annotations.NotNull;
00025 import org.junit.Assert;
00026 import org.junit.Test;
00027
00033 public class OrientationTest {
00034
00040 @Test
00041 public void testOrientations() throws IllegalAccessException, InstantiationException {
00042 check(OrientationWE.class, true, false);
00043 check(OrientationEW.class, true, true);
00044 check(OrientationNS.class, false, false);
00045 check(OrientationSN.class, false, true);
00046 }
00047
00056 private static void check(@NotNull final Class<? extends Orientation> class_, final boolean useX, final boolean flip) throws IllegalAccessException, InstantiationException {
00057 checkPositive(class_, useX, flip);
00058 checkNegative(class_, useX, flip);
00059 }
00060
00070 private static void checkPositive(@NotNull final Class<? extends Orientation> class_, final boolean useX, final boolean flip) throws IllegalAccessException, InstantiationException {
00071 final Orientation o = class_.newInstance();
00072 o.setHasNegativeImage(false);
00073 o.setExtends(useX ? 100 : 32, useX ? 32 : 100);
00074 check(o, useX, flip, false, 0, 0, 0, 32, false);
00075
00076
00077 o.setValues(50, 50, 90);
00078 check(o, useX, flip, true, 0, 0, 0, 32, false);
00079
00080
00081 o.setValues(60, 50, 90);
00082 check(o, useX, flip, true, 0, 0, 25, 32, false);
00083
00084
00085 o.setValues(90, 50, 90);
00086 check(o, useX, flip, true, 0, 0, 100, 32, false);
00087
00088
00089 o.setValues(110, 50, 90);
00090 check(o, useX, flip, true, 0, 0, 100, 32, false);
00091
00092
00093 o.setValues(30, 50, 90);
00094 check(o, useX, flip, true, 0, 0, 0, 32, false);
00095
00096
00097 o.setValues(-10, 50, 90);
00098 check(o, useX, flip, true, 0, 0, 0, 32, false);
00099 }
00100
00110 private static void checkNegative(@NotNull final Class<? extends Orientation> class_, final boolean useX, final boolean flip) throws IllegalAccessException, InstantiationException {
00111 final Orientation o = class_.newInstance();
00112 o.setHasNegativeImage(true);
00113 o.setExtends(useX ? 100 : 32, useX ? 32 : 100);
00114 check(o, useX, flip, false, 0, 0, 0, 32, false);
00115
00116
00117 o.setValues(50, 50, 90);
00118 check(o, useX, flip, true, 0, 0, 0, 32, false);
00119
00120
00121 o.setValues(60, 50, 90);
00122 check(o, useX, flip, true, 0, 0, 25, 32, false);
00123
00124
00125 o.setValues(90, 50, 90);
00126 check(o, useX, flip, true, 0, 0, 100, 32, false);
00127
00128
00129 o.setValues(110, 50, 90);
00130 check(o, useX, flip, true, 0, 0, 100, 32, false);
00131
00132
00133 o.setValues(30, 50, 90);
00134 check(o, useX, flip, true, 0, 0, 50, 32, true);
00135
00136
00137 o.setValues(-10, 50, 90);
00138 check(o, useX, flip, true, 0, 0, 100, 32, true);
00139 }
00140
00153 private static void check(@NotNull final Orientation o, final boolean useX, final boolean flip, final boolean valid, final int x, final int y, final int w, final int h, final boolean negativeImage) {
00154 final int isX = useX ? o.getX() : o.getY();
00155 final int isY = useX ? o.getY() : o.getX();
00156 final int isW = useX ? o.getW() : o.getH();
00157 final int isH = useX ? o.getH() : o.getW();
00158 Assert.assertEquals(valid, o.isValid());
00159 Assert.assertEquals(flip ? 100-x-w : x, isX);
00160 Assert.assertEquals(y, isY);
00161 Assert.assertEquals(w, isW);
00162 Assert.assertEquals(h, isH);
00163 Assert.assertEquals(negativeImage, o.isNegativeImage());
00164 }
00165
00166 }