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