/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package ge.edu.freeuni.sdp.snake.model; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; import org.mockito.Mockito; import static org.mockito.Mockito.when; import org.mockito.internal.matchers.ArrayEquals; /** * * @author user */ public class ConfigurationTest { private static Size size; private static List<Level> levels; private static Configuration temp; private static Level level1; @BeforeClass public static void setUp(){ size = Mockito.mock(Size.class); level1 = Mockito.mock(Level.class); levels = new ArrayList<>(); levels.add(level1); Configuration.init(size, levels); temp = Configuration.getInstance(); } @Test public void testGetSize() { Size returnSize = temp.getSize(); assertTrue(returnSize.equals(size)); } @Test public void testGetgetSelectedLevel_And_GetSelectedLevelIndex() { int levelIndex = 0; temp.selectLevel(levelIndex); assertTrue(level1.equals(temp.getSelectedLevel())); assertEquals(temp.getSelectedLevelIndex(),levelIndex); } @Test public void testGetgetSelectedLevelDiscription() { when(level1.getDescription()).thenReturn("Testing is Ok"); int levelIndex = 0; temp.selectLevel(levelIndex); assertTrue(temp.getSelectedLevelDescription().equals("Testing is Ok")); } @Test public void testGetLevelNames() { when(level1.getName()).thenReturn("First Name"); String [] testing = temp.getLevelNames(); assertEquals(1,testing.length); assertTrue(testing[0].equals("First Name")); String[] result = new String[levels.size()]; for (int i = 0; i < result.length; i++) { result[i] = levels.get(i).getName(); } assertArrayEquals(result,testing); } @Test(expected = IllegalStateException.class) public void testExceptionForSecondInit(){ Configuration.init(size,levels); fail("Can`t catch exception"); } }