Изменил тип идентификатора с Int на Long

This commit is contained in:
Mark Struchkov 2020-02-02 09:46:01 +03:00
parent c4426d8e75
commit cd5a461398
8 changed files with 39 additions and 39 deletions

View File

@ -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>

View File

@ -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);

View File

@ -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;

View File

@ -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);
}

View File

@ -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));
}
}

View File

@ -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);
}

View File

@ -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();
}
}

View File

@ -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);
}