Изменил тип идентификатора с Int на Long
This commit is contained in:
parent
c4426d8e75
commit
cd5a461398
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>org.sadtech.autoresponder</groupId>
|
<groupId>org.sadtech.autoresponder</groupId>
|
||||||
<artifactId>autoresponder</artifactId>
|
<artifactId>autoresponder</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.8-RELEASE</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
@ -45,12 +45,12 @@ public class AutoResponder<U extends Unit> {
|
|||||||
/**
|
/**
|
||||||
* Принимает текстовый запрос пользователя и отдает юнит, который соответствует запросу
|
* Принимает текстовый запрос пользователя и отдает юнит, который соответствует запросу
|
||||||
*
|
*
|
||||||
* @param personId Идентификатор пользователя
|
* @param entityId Идентификатор клиента
|
||||||
* @param message Запрос пользователя - текстовое сообщение
|
* @param message Запрос пользователя - текстовое сообщение
|
||||||
* @return {@link Unit}, который отвечает за данные для обработки данного запроса
|
* @return {@link Unit}, который отвечает за данные для обработки данного запроса
|
||||||
*/
|
*/
|
||||||
public Optional<U> answer(@NonNull Integer personId, String message) {
|
public Optional<U> answer(@NonNull Long entityId, String message) {
|
||||||
Optional<UnitPointer> unitPointer = unitPointerService.getByEntityId(personId);
|
Optional<UnitPointer> unitPointer = unitPointerService.getByEntityId(entityId);
|
||||||
Optional<U> unitOpt = nextUnit(
|
Optional<U> unitOpt = nextUnit(
|
||||||
!unitPointer.isPresent() || newScenario(unitPointer.get()) ? startUnits : unitPointer.get().getUnit().getNextUnits(),
|
!unitPointer.isPresent() || newScenario(unitPointer.get()) ? startUnits : unitPointer.get().getUnit().getNextUnits(),
|
||||||
message
|
message
|
||||||
@ -58,9 +58,9 @@ public class AutoResponder<U extends Unit> {
|
|||||||
if (unitOpt.isPresent()) {
|
if (unitOpt.isPresent()) {
|
||||||
U unit = unitOpt.get();
|
U unit = unitOpt.get();
|
||||||
if (unitPointer.isPresent()) {
|
if (unitPointer.isPresent()) {
|
||||||
unitPointerService.edit(personId, unit);
|
unitPointerService.edit(entityId, unit);
|
||||||
} else {
|
} else {
|
||||||
unitPointerService.add(new UnitPointer(personId, unit));
|
unitPointerService.add(new UnitPointer(entityId, unit));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return unitOpt.isPresent() ? unitOpt : Optional.ofNullable(defaultUnit);
|
return unitOpt.isPresent() ? unitOpt : Optional.ofNullable(defaultUnit);
|
||||||
|
@ -16,7 +16,7 @@ import org.sadtech.autoresponder.util.Description;
|
|||||||
public class UnitPointer {
|
public class UnitPointer {
|
||||||
|
|
||||||
@Description("Идентификатор пользователя")
|
@Description("Идентификатор пользователя")
|
||||||
private final Integer entityId;
|
private final Long entityId;
|
||||||
|
|
||||||
@Description("Юнит, который был обработан")
|
@Description("Юнит, который был обработан")
|
||||||
private Unit unit;
|
private Unit unit;
|
||||||
|
@ -25,6 +25,6 @@ public interface UnitPointerRepository {
|
|||||||
* @param entityId Идентификатор пользователя
|
* @param entityId Идентификатор пользователя
|
||||||
* @return Объект с последним обработанным {@link org.sadtech.autoresponder.entity.Unit} для пользователя
|
* @return Объект с последним обработанным {@link org.sadtech.autoresponder.entity.Unit} для пользователя
|
||||||
*/
|
*/
|
||||||
Optional<UnitPointer> findByEntityId(@NonNull Integer entityId);
|
Optional<UnitPointer> findByEntityId(@NonNull Long entityId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ import java.util.Optional;
|
|||||||
*/
|
*/
|
||||||
public class UnitPointerRepositoryMap implements UnitPointerRepository {
|
public class UnitPointerRepositoryMap implements UnitPointerRepository {
|
||||||
|
|
||||||
private Map<Integer, UnitPointer> unitPointerMap = new HashMap<>();
|
private Map<Long, UnitPointer> unitPointerMap = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UnitPointer add(@NonNull UnitPointer unitPointer) {
|
public UnitPointer add(@NonNull UnitPointer unitPointer) {
|
||||||
@ -39,7 +39,7 @@ public class UnitPointerRepositoryMap implements UnitPointerRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<UnitPointer> findByEntityId(@NonNull Integer entityId) {
|
public Optional<UnitPointer> findByEntityId(@NonNull Long entityId) {
|
||||||
return Optional.ofNullable(unitPointerMap.get(entityId));
|
return Optional.ofNullable(unitPointerMap.get(entityId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,11 @@ public interface UnitPointerService {
|
|||||||
* @param entityId Идентификатор пользователя
|
* @param entityId Идентификатор пользователя
|
||||||
* @return true - если найдено
|
* @return true - если найдено
|
||||||
*/
|
*/
|
||||||
boolean check(@NonNull Integer entityId);
|
boolean check(@NonNull Long entityId);
|
||||||
|
|
||||||
Optional<UnitPointer> getByEntityId(@NonNull Integer entityId);
|
Optional<UnitPointer> getByEntityId(@NonNull Long entityId);
|
||||||
|
|
||||||
void edit(@NonNull Integer personId, Unit unit);
|
void edit(@NonNull Long entityId, Unit unit);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -16,14 +16,14 @@ public class UnitPointerServiceImpl implements UnitPointerService {
|
|||||||
private final UnitPointerRepository unitPointerRepository;
|
private final UnitPointerRepository unitPointerRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<UnitPointer> getByEntityId(@NonNull Integer entityId) {
|
public Optional<UnitPointer> getByEntityId(@NonNull Long entityId) {
|
||||||
return unitPointerRepository.findByEntityId(entityId);
|
return unitPointerRepository.findByEntityId(entityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void edit(@NonNull Integer personId, Unit unit) {
|
public void edit(@NonNull Long entityId, Unit unit) {
|
||||||
if (check(personId)) {
|
if (check(entityId)) {
|
||||||
unitPointerRepository.edit(new UnitPointer(personId, unit));
|
unitPointerRepository.edit(new UnitPointer(entityId, unit));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ public class UnitPointerServiceImpl implements UnitPointerService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean check(@NonNull Integer entityId) {
|
public boolean check(@NonNull Long entityId) {
|
||||||
return unitPointerRepository.findByEntityId(entityId).isPresent();
|
return unitPointerRepository.findByEntityId(entityId).isPresent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,9 +70,9 @@ public class AutoResponderTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void simpleAnswer() {
|
public void simpleAnswer() {
|
||||||
String message = autoresponder.answer(1, "привет это тестирвоание функциональности").orElseThrow(NullPointerException::new).getMessage();
|
String message = autoresponder.answer(1L, "привет это тестирвоание функциональности").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("тест", message);
|
Assert.assertEquals("тест", message);
|
||||||
String message1 = autoresponder.answer(2, "привет, еще одно тестирование").orElseThrow(NullPointerException::new).getMessage();
|
String message1 = autoresponder.answer(2L, "привет, еще одно тестирование").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("тест", message1);
|
Assert.assertEquals("тест", message1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,42 +81,42 @@ public class AutoResponderTest {
|
|||||||
TestUnit defaultUnit = TestUnit.builder().message("не знаю").build();
|
TestUnit defaultUnit = TestUnit.builder().message("не знаю").build();
|
||||||
autoresponder.setDefaultUnit(defaultUnit);
|
autoresponder.setDefaultUnit(defaultUnit);
|
||||||
|
|
||||||
Assert.assertEquals("не знаю", autoresponder.answer(2, "пока").orElseThrow(NullPointerException::new).getMessage());
|
Assert.assertEquals("не знаю", autoresponder.answer(2L, "пока").orElseThrow(NullPointerException::new).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void notDefaultAnswer() {
|
public void notDefaultAnswer() {
|
||||||
Assert.assertEquals(Optional.empty(), autoresponder.answer(2, "пока"));
|
Assert.assertEquals(Optional.empty(), autoresponder.answer(2L, "пока"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void regExpAnswer() {
|
public void regExpAnswer() {
|
||||||
String message = autoresponder.answer(1, "79101234567").orElseThrow(NullPointerException::new).getMessage();
|
String message = autoresponder.answer(1L, "79101234567").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("регулярка", message);
|
Assert.assertEquals("регулярка", message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void priorityAnswer() {
|
public void priorityAnswer() {
|
||||||
autoresponder.answer(1, "привет");
|
autoresponder.answer(1L, "привет");
|
||||||
autoresponder.answer(2, "привет");
|
autoresponder.answer(2L, "привет");
|
||||||
String message = autoresponder.answer(1, "как твои делишки").orElseThrow(NullPointerException::new).getMessage();
|
String message = autoresponder.answer(1L, "как твои делишки").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("отлично", message);
|
Assert.assertEquals("отлично", message);
|
||||||
String message1 = autoresponder.answer(2, "твои дела все еще хорошо?").orElseThrow(NullPointerException::new).getMessage();
|
String message1 = autoresponder.answer(2L, "твои дела все еще хорошо?").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("хорошо", message1);
|
Assert.assertEquals("хорошо", message1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void showRegExpVsKeyWords() {
|
public void showRegExpVsKeyWords() {
|
||||||
autoresponder.answer(1, "привет");
|
autoresponder.answer(1L, "привет");
|
||||||
autoresponder.answer(1, "дела");
|
autoresponder.answer(1L, "дела");
|
||||||
Assert.assertEquals("регулярка", autoresponder.answer(1, "89101234567").orElseThrow(NullPointerException::new).getMessage());
|
Assert.assertEquals("регулярка", autoresponder.answer(1L, "89101234567").orElseThrow(NullPointerException::new).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void matchThreshold() {
|
public void matchThreshold() {
|
||||||
autoresponder.answer(1, "витамин я сьем, и арбуз получу");
|
autoresponder.answer(1L, "витамин я сьем, и арбуз получу");
|
||||||
String message = "параметр себе задам: покушать витамин и арбуз, а вместе все это мультифрукт";
|
String message = "параметр себе задам: покушать витамин и арбуз, а вместе все это мультифрукт";
|
||||||
String answer = autoresponder.answer(1, message).orElseThrow(NullPointerException::new).getMessage();
|
String answer = autoresponder.answer(1L, message).orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("победа", answer);
|
Assert.assertEquals("победа", answer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,16 +124,16 @@ public class AutoResponderTest {
|
|||||||
public void generalAnswer() {
|
public void generalAnswer() {
|
||||||
TestUnit defaultUnit = TestUnit.builder().message("не знаю").build();
|
TestUnit defaultUnit = TestUnit.builder().message("не знаю").build();
|
||||||
autoresponder.setDefaultUnit(defaultUnit);
|
autoresponder.setDefaultUnit(defaultUnit);
|
||||||
String answer = autoresponder.answer(1, "привет это тестирование функциональности").orElseThrow(NullPointerException::new).getMessage();
|
String answer = autoresponder.answer(1L, "привет это тестирование функциональности").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("тест", answer);
|
Assert.assertEquals("тест", answer);
|
||||||
Assert.assertEquals("хорошо", autoresponder.answer(1, "как твои дела").orElseThrow(NullPointerException::new).getMessage());
|
Assert.assertEquals("хорошо", autoresponder.answer(1L, "как твои дела").orElseThrow(NullPointerException::new).getMessage());
|
||||||
String answer2 = autoresponder.answer(2, "привет это тестирование функциональности").orElseThrow(NullPointerException::new).getMessage();
|
String answer2 = autoresponder.answer(2L, "привет это тестирование функциональности").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("тест", answer2);
|
Assert.assertEquals("тест", answer2);
|
||||||
Assert.assertEquals("не знаю", autoresponder.answer(1, "нет").orElseThrow(NullPointerException::new).getMessage());
|
Assert.assertEquals("не знаю", autoresponder.answer(1L, "нет").orElseThrow(NullPointerException::new).getMessage());
|
||||||
String message = "параметр себе задам: покушать витамин и арбуз, а вместе все это мультифрукт";
|
String message = "параметр себе задам: покушать витамин и арбуз, а вместе все это мультифрукт";
|
||||||
Assert.assertEquals("победа", autoresponder.answer(3, message).orElseThrow(NullPointerException::new).getMessage());
|
Assert.assertEquals("победа", autoresponder.answer(3L, message).orElseThrow(NullPointerException::new).getMessage());
|
||||||
Assert.assertEquals("регулярка", autoresponder.answer(1, "8912345678").orElseThrow(NullPointerException::new).getMessage());
|
Assert.assertEquals("регулярка", autoresponder.answer(1L, "8912345678").orElseThrow(NullPointerException::new).getMessage());
|
||||||
String answer3 = autoresponder.answer(1, "привет это тестирование функциональности").orElseThrow(NullPointerException::new).getMessage();
|
String answer3 = autoresponder.answer(1L, "привет это тестирование функциональности").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("тест", answer3);
|
Assert.assertEquals("тест", answer3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user