package testing; import org.junit.Before; import connection.DataConnection; import java.util.ArrayList; import org.junit.Test; import static org.junit.Assert.*; /** * JUnit tests for EnglishTesting.java * Testing logic which works with DB * Testing logic methods getResults(), calcPercent(),calcSkill() * @author Shpatserman Maria */ public class EnglishTestingTest { /** * Stub class - Data Connection */ public class StubDBconnect implements DataConnection{ public String returnRandomWord() { return "Hello"; } public ArrayList returnAnswersByWord(String englishWord) { ArrayList answersList = new ArrayList(); answersList.add("привет"); return answersList; } } private StubDBconnect data; private EnglishTesting test; @Before public void instantiate() { test = new EnglishTesting(); data = new StubDBconnect(); } //Logic tests @Test public void testCalcPercentNullQuestions(){ test.countQuests=0; assertEquals("100%",test.calcPercent()); } @Test public void testCalcPercent(){ //Test data test.countQuests=4; test.skill = 2; assertEquals("50%", test.calcPercent()); } @Test public void testCalcSkillIncrement(){ //Test data test.countQuests=0; test.skill = 0; //CorrectAnswer test.calcSkill("Hello", "привет", 1, data); //Check skills assertTrue(test.skill==1); } @Test public void testCalcSkillIncrementErrors(){ //Test data test.countQuests=0; test.errors = 0; //IncorrectAnswer test.calcSkill("Hello", "пока", 1, data); //Check errors assertTrue(test.errors==1); } @Test public void testGetResultsExcelent(){ //Test data test.errors = 0; test.countQuests =1; test.skill=1; String result = test.getResults(); String expect = "Великолепно! \n"+ "Результат 100%\n"+ "Правильных ответов 1 из 1"; assertEquals(expect, result); } @Test public void testGetResultsGood(){ //Test data test.errors = 1; test.countQuests =2; test.skill=1; test.improperAnswers=""; String result = test.getResults(); String expect = "Результат 50%\n"+ "Правильных ответов 1 из 2\n"+ "Ошибок 1\n"; assertEquals(expect, result); } //Work with Data @Test public void testGetEnglishWord(){ //StubDBconnect data = new StubDBconnect(); String word = test.getEngWord(data); assertEquals("Hello",word); } @Test public void testCheckAnswer(){ //StubDBconnect data = new StubDBconnect(); assertTrue(test.checkAnswer("Hello", "привет", data)); } @Test public void testCheckIncorrectAnswer(){ //StubDBconnect data = new StubDBconnect(); assertFalse(test.checkAnswer("Hello", "пока", data)); } @Test public void testGenerateAnswerForImproperWord(){ //StubDBconnect data = new StubDBconnect(); String result = test.generateAnswerForImproperWord("Hello", "пока", 1, data); String standard = "Неправильный ответ на вопрос № 1\n"+ "Слово Hello\n"+ "Ваш ответ пока\n"+ "Правильный ответ [привет]"; assertEquals(standard,result); } }