diff --git a/src/main/java/org/sadtech/autoresponder/entity/compare/UnitPriorityComparator.java b/src/main/java/org/sadtech/autoresponder/entity/compare/UnitPriorityComparator.java index 6ced573..41003ad 100644 --- a/src/main/java/org/sadtech/autoresponder/entity/compare/UnitPriorityComparator.java +++ b/src/main/java/org/sadtech/autoresponder/entity/compare/UnitPriorityComparator.java @@ -8,7 +8,7 @@ public class UnitPriorityComparator implements Comparator { @Override public int compare(Unit o1, Unit o2) { - if (o1.getPriority() > o2.getPriority()) { + if (o1.getPriority() < o2.getPriority()) { return -1; } else if (o1.getPriority().equals(o2.getPriority())) { return 0; diff --git a/src/test/java/org/sadtech/autoresponder/AutoresponderTest.java b/src/test/java/org/sadtech/autoresponder/AutoresponderTest.java index b883179..bb12355 100644 --- a/src/test/java/org/sadtech/autoresponder/AutoresponderTest.java +++ b/src/test/java/org/sadtech/autoresponder/AutoresponderTest.java @@ -1,126 +1,142 @@ -//package org.sadtech.autoresponder; -// -//import org.junit.Assert; -//import org.junit.Before; -//import org.junit.Test; -//import org.sadtech.autoresponder.entity.Person; -//import org.sadtech.autoresponder.entity.Unit; -//import org.sadtech.autoresponder.repository.impl.PersonRepositoryMap; -//import org.sadtech.autoresponder.service.impl.PersonServiceImpl; -//import org.sadtech.autoresponder.service.impl.UnitServiceImpl; -// -//import java.util.ArrayList; -//import java.util.HashSet; -// -//public class AutoresponderTest { -// -// private Person person = new Person(); -// private Unit unit = new Unit(); -// private Unit unit2 = new Unit(); -// private Unit unit3 = new Unit(); -// private ArrayList units = new ArrayList<>(); -// private UnitRepositoryMap unitRepository = new UnitRepositoryMap(); -// private PersonRepositoryMap personRepository = new PersonRepositoryMap(); -// -// private UnitServiceImpl unitService = new UnitServiceImpl(unitRepository); -// private PersonServiceImpl personService = new PersonServiceImpl(personRepository); -// private Autoresponder autoresponder = new Autoresponder(unitService, personService); -// -// -// @Before -// public void before() { -// HashSet words = new HashSet<>(); -// HashSet words2 = new HashSet<>(); -// words.add("тест"); -// words2.add("тест"); -// words2.add("привет"); -// -// unit.setIdUnit(1); -// unit.setLevel(true); -// unit.setPriority(50); -// unit.setKeyWords(words); -// unit.setAnswer("Здравствуйте, вы написали в нашу компанию!"); -// unit.setMatchThreshold(100); -// -// units.add(unit2); -// units.add(unit3); -// -// unit.setNextUnits(units); -// -// unit2.setIdUnit(2); -// unit2.setAnswer("Ответ с {0} параметрами!"); -// unit2.setPriority(60); -// unit2.setKeyWords(words); -// unit2.setMatchThreshold(100); -// -// unit3.setIdUnit(3); -// unit3.setAnswer("Второй Ответ с {0} параметрами!"); -// unit3.setPriority(50); -// unit3.setKeyWords(words2); -// unit3.setMatchThreshold(100); -// -// person.setUnit(unit); -// person.setId(1); -// -// unitRepository.addUnit(unit); -// unitRepository.addUnit(unit2); -// personRepository.addPerson(person); -// } -// -// @Test -// public void usualAnswer() { -// Assert.assertEquals(autoresponder.answer(person.getId(), "Привет это тест срабатывания"), "Ответ с {0} параметрами!"); -// } -// -// @Test -// public void answerOneParameter() { -// ArrayList words = new ArrayList<>(); -// words.add("одним"); -// Assert.assertEquals(autoresponder.answer(person.getId(), "Привет это тест срабатывания", words), "Ответ с одним параметрами!"); -// } -// -// @Test -// public void NoAnswer() { -// person.setUnit(null); -// String test = autoresponder.answer(person.getId(), "Привет это срабатывания"); -// Assert.assertNull(test); -// } -// -// @Test -// public void answerTwoParameter() { -// ArrayList words = new ArrayList<>(); -// words.add("одним"); -// words.add("двумя"); -// unit2.setAnswer("Ответ с {0} и {1}"); -// Assert.assertEquals(autoresponder.answer(person.getId(), "Привет это тест срабатывания", words), "Ответ с одним и двумя"); -// } -// -// @Test -// public void incorrectSettingsWords() { -// ArrayList words = new ArrayList<>(); -// words.add("одним"); -// words.add("двумя"); -// unit2.setAnswer("Ответ с {1} и {3}"); -// Assert.assertEquals(autoresponder.answer(person.getId(), "Привет это тест срабатывания", words), "Ответ с двумя и {3}"); -// } -// -// @Test -// public void answerRepeatSingleParameter() { -// ArrayList words = new ArrayList<>(); -// words.add("одним"); -// words.add("двумя"); -// unit2.setAnswer("Ответ с {1} и {1}"); -// Assert.assertEquals(autoresponder.answer(person.getId(), "Привет это тест срабатывания", words), "Ответ с двумя и двумя"); -// } -// -// @Test -// public void answerByPriority() { -// Assert.assertEquals(autoresponder.answer(person.getId(), "Привет это тест срабатывания"), "Ответ с {0} параметрами!"); -// } -// -// @Test -// public void answerNoPerson() { -// Assert.assertEquals(autoresponder.answer(100, "Привет это тест срабатывания"), "Здравствуйте, вы написали в нашу компанию!"); -// Assert.assertEquals(autoresponder.answer(100, "Привет это тест срабатывания"), "Ответ с {0} параметрами!"); -// } -//} \ No newline at end of file +package org.sadtech.autoresponder; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.sadtech.autoresponder.entity.Person; +import org.sadtech.autoresponder.entity.Unit; +import org.sadtech.autoresponder.repository.UnitRepository; +import org.sadtech.autoresponder.repository.impl.PersonRepositoryMap; +import org.sadtech.autoresponder.service.impl.PersonServiceImpl; +import org.sadtech.autoresponder.service.impl.UnitServiceImpl; + +import java.util.*; + +public class AutoresponderTest { + + private Person person = new Person(1); + private TextUnit unit = new TextUnit(); + private TextUnit unit2 = new TextUnit(); + private TextUnit unit3 = new TextUnit(); + private ArrayList units = new ArrayList<>(); + private TextUnitRepositoryList unitRepository = new TextUnitRepositoryList(); + private PersonRepositoryMap personRepository = new PersonRepositoryMap(); + + private UnitServiceImpl unitService = new UnitServiceImpl(); + private PersonServiceImpl personService = new PersonServiceImpl(personRepository); + private Autoresponder autoresponder = new Autoresponder(unitService, personService); + + + @Before + public void before() { + unitService.addUnitRepository(unitRepository); + + HashSet words = new HashSet<>(); + HashSet words2 = new HashSet<>(); + words.add("тест"); + words2.add("тест"); + words2.add("привет"); + + unit.setLevel(true); + unit.setPriority(50); + unit.setKeyWords(words); + unit.setAnswer("Здравствуйте, вы написали в нашу компанию!"); + unit.setMatchThreshold(100); + + units.add(unit2); + units.add(unit3); + + unit.setNextUnits(units); + + unit2.setAnswer("Ответ с {0} параметрами!"); + unit2.setPriority(60); + unit2.setKeyWords(words); + unit2.setMatchThreshold(100); + + unit3.setAnswer("Второй Ответ с {0} параметрами!"); + unit3.setPriority(50); + unit3.setKeyWords(words2); + unit3.setMatchThreshold(100); + + person.setUnit(unit); + + unitRepository.addUnit(unit); + unitRepository.addUnit(unit2); + personRepository.addPerson(person); + } + + @Test + public void usualAnswer() { + Unit unit = autoresponder.answer(person.getId(), "Привет это тест срабатывания"); + Assert.assertEquals(((TextUnit) unit).getAnswer(), "Ответ с {0} параметрами!"); + } + + + @Test + public void NoAnswer() { + person.setUnit(null); + autoresponder.answer(person.getId(), "Привет это срабатывания"); + } + + + @Test + public void answerByPriority() { + Assert.assertEquals(autoresponder.answer(person.getId(), "Привет это тест срабатывания"), "Ответ с {0} параметрами!"); + } + + @Test + public void answerNoPerson() { + TextUnit textUnit = (TextUnit) autoresponder.answer(100, "Привет это тест срабатывания"); + Assert.assertEquals(textUnit.getAnswer(), "Здравствуйте, вы написали в нашу компанию!"); + textUnit = (TextUnit) autoresponder.answer(100, "Привет это тест срабатывания"); + Assert.assertEquals(textUnit.getAnswer(), "Ответ с {0} параметрами!"); + } + + + private class TextUnit extends Unit { + private String answer; + + public TextUnit() { + super(); + } + + public String getAnswer() { + return answer; + } + + public void setAnswer(String answer) { + this.answer = answer; + } + } + + private class TextUnitRepositoryList implements UnitRepository { + + List textUnits = new ArrayList<>(); + + @Override + public void addUnit(Unit unit) { + textUnits.add(unit); + } + + @Override + public void addUnits(Collection units) { + textUnits.addAll(units); + } + + @Override + public void removeUnit(Unit idUnit) { + textUnits.remove(idUnit); + } + + @Override + public List menuUnits() { + List units = new ArrayList<>(); + for (Unit textUnit : textUnits) { + if (textUnit.getLevel()) { + units.add(textUnit); + } + } + return units; + } + } +} \ No newline at end of file