package lab.games; import static org.junit.Assert.*; import java.lang.reflect.Field; import java.util.List; import javax.swing.ImageIcon; import javax.swing.JLabel; import org.junit.Test; public class ViewTest { @Test public void testConstructor() { Controller controller = new Controller(); View view = new View(controller); assertEquals("title of view has not been set correctly", "Connect 4", view.getTitle()); } @Test public void testSetSlot() { try { Controller controller = new Controller(); View view = new View(controller); Class clazz = view.getClass(); Field field = clazz.getDeclaredField("slots"); field.setAccessible(true); List> slots = (List>) field.get(view); field = clazz.getDeclaredField("PLAYER"); field.setAccessible(true); ImageIcon PLAYER = (ImageIcon) field.get(view); field = clazz.getDeclaredField("COMPUTER"); field.setAccessible(true); ImageIcon COMPUTER = (ImageIcon) field.get(view); for (int row = 0; row < Model.ROW; row++) { for (int column = 0; column < Model.COLUMN; column++) { view.setSlot(row, column, Model.PLAYER); assertEquals("setSlots is incorrect", PLAYER, slots.get(row).get(column).getIcon()); view.setSlot(row, column, Model.COMPUTER); assertEquals("setSlots is incorrect", COMPUTER, slots.get(row).get(column).getIcon()); } } } catch (Exception e) { fail("Unexpected exception"); } } }