Рефакторинг и исправление тестов
This commit is contained in:
parent
c605a711a6
commit
c8dedeb4d5
@ -55,10 +55,14 @@ public class AutoResponder<U extends Unit> {
|
|||||||
!unitPointer.isPresent() || newScenario(unitPointer.get()) ? startUnits : unitPointer.get().getUnit().getNextUnits(),
|
!unitPointer.isPresent() || newScenario(unitPointer.get()) ? startUnits : unitPointer.get().getUnit().getNextUnits(),
|
||||||
message
|
message
|
||||||
);
|
);
|
||||||
unitOpt.ifPresent(unit -> {
|
if (unitOpt.isPresent()) {
|
||||||
unitPointer.orElseGet(() -> unitPointerService.create(personId));
|
U unit = unitOpt.get();
|
||||||
|
if (unitPointer.isPresent()) {
|
||||||
unitPointerService.edit(personId, unit);
|
unitPointerService.edit(personId, unit);
|
||||||
});
|
} else {
|
||||||
|
unitPointerService.add(new UnitPointer(personId, unit));
|
||||||
|
}
|
||||||
|
}
|
||||||
return unitOpt.isPresent() ? unitOpt : Optional.ofNullable(defaultUnit);
|
return unitOpt.isPresent() ? unitOpt : Optional.ofNullable(defaultUnit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
package org.sadtech.autoresponder.exception;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Исключение, которое выбрасывается, если юнит не найден.
|
|
||||||
*
|
|
||||||
* @author upagge [07/07/2019]
|
|
||||||
*/
|
|
||||||
public class NotFoundUnitException extends RuntimeException {
|
|
||||||
|
|
||||||
}
|
|
@ -25,8 +25,6 @@ public interface UnitPointerService {
|
|||||||
|
|
||||||
Optional<UnitPointer> getByEntityId(@NonNull Integer entityId);
|
Optional<UnitPointer> getByEntityId(@NonNull Integer entityId);
|
||||||
|
|
||||||
UnitPointer create(@NonNull Integer entryId);
|
|
||||||
|
|
||||||
void edit(@NonNull Integer personId, Unit unit);
|
void edit(@NonNull Integer personId, Unit unit);
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,11 +20,6 @@ public class UnitPointerServiceImpl implements UnitPointerService {
|
|||||||
return unitPointerRepository.findByEntityId(entityId);
|
return unitPointerRepository.findByEntityId(entityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public UnitPointer create(@NonNull Integer entryId) {
|
|
||||||
return unitPointerRepository.add(new UnitPointer(entryId));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void edit(@NonNull Integer personId, Unit unit) {
|
public void edit(@NonNull Integer personId, Unit unit) {
|
||||||
if (check(personId)) {
|
if (check(personId)) {
|
||||||
|
@ -13,5 +13,5 @@ import java.lang.annotation.Target;
|
|||||||
@Target(ElementType.FIELD)
|
@Target(ElementType.FIELD)
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
public @interface Description {
|
public @interface Description {
|
||||||
String value();
|
String value() default "";
|
||||||
}
|
}
|
||||||
|
15
src/main/java/org/sadtech/autoresponder/util/Message.java
Normal file
15
src/main/java/org/sadtech/autoresponder/util/Message.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package org.sadtech.autoresponder.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Класс содержащий сообщения для ошибок и логера.
|
||||||
|
*
|
||||||
|
* @author upagge [22.08.2019]
|
||||||
|
*/
|
||||||
|
final class Message {
|
||||||
|
|
||||||
|
static final String UTILITY_CLASS = "Клас утилита";
|
||||||
|
|
||||||
|
private Message() {
|
||||||
|
throw new IllegalStateException(UTILITY_CLASS);
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,12 @@
|
|||||||
package org.sadtech.autoresponder.util;
|
package org.sadtech.autoresponder.util;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
import static org.sadtech.autoresponder.util.Message.UTILITY_CLASS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Разбивает строку на множество слов, удаляя предлоги.
|
* Разбивает строку на множество слов, удаляя предлоги.
|
||||||
@ -13,13 +16,11 @@ import java.util.stream.Stream;
|
|||||||
public class Parser {
|
public class Parser {
|
||||||
|
|
||||||
@Description("Множество предлогов")
|
@Description("Множество предлогов")
|
||||||
private static final Set<String> pretexts = Stream
|
private static final Set<String> pretexts = Collections.unmodifiableSet(new HashSet<>(Arrays.asList("в", "без", "до", "из", "к", "на", "по", "о", "от", "перед", "при", "с", "у", "за", "над", "об",
|
||||||
.of("в", "без", "до", "из", "к", "на", "по", "о", "от", "перед", "при", "с", "у", "за", "над", "об",
|
"под", "про", "для")));
|
||||||
"под", "про", "для")
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
private Parser() {
|
private Parser() {
|
||||||
throw new IllegalStateException("Utility Class");
|
throw new IllegalStateException(UTILITY_CLASS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -70,9 +70,9 @@ public class AutoResponderTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void simpleAnswer() {
|
public void simpleAnswer() {
|
||||||
String message = autoresponder.answer(1, "привет это тестирвоание функциональности").get().getMessage();
|
String message = autoresponder.answer(1, "привет это тестирвоание функциональности").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("тест", message);
|
Assert.assertEquals("тест", message);
|
||||||
String message1 = autoresponder.answer(2, "привет, еще одно тестирование").get().getMessage();
|
String message1 = autoresponder.answer(2, "привет, еще одно тестирование").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("тест", message1);
|
Assert.assertEquals("тест", message1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ 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, "пока").get().getMessage());
|
Assert.assertEquals("не знаю", autoresponder.answer(2, "пока").orElseThrow(NullPointerException::new).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -91,7 +91,7 @@ public class AutoResponderTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void regExpAnswer() {
|
public void regExpAnswer() {
|
||||||
String message = autoresponder.answer(1, "79101234567").get().getMessage();
|
String message = autoresponder.answer(1, "79101234567").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("регулярка", message);
|
Assert.assertEquals("регулярка", message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,9 +99,9 @@ public class AutoResponderTest {
|
|||||||
public void priorityAnswer() {
|
public void priorityAnswer() {
|
||||||
autoresponder.answer(1, "привет");
|
autoresponder.answer(1, "привет");
|
||||||
autoresponder.answer(2, "привет");
|
autoresponder.answer(2, "привет");
|
||||||
String message = autoresponder.answer(1, "как твои делишки").get().getMessage();
|
String message = autoresponder.answer(1, "как твои делишки").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("отлично", message);
|
Assert.assertEquals("отлично", message);
|
||||||
String message1 = autoresponder.answer(2, "твои дела все еще хорошо?").get().getMessage();
|
String message1 = autoresponder.answer(2, "твои дела все еще хорошо?").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("хорошо", message1);
|
Assert.assertEquals("хорошо", message1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,14 +109,14 @@ public class AutoResponderTest {
|
|||||||
public void showRegExpVsKeyWords() {
|
public void showRegExpVsKeyWords() {
|
||||||
autoresponder.answer(1, "привет");
|
autoresponder.answer(1, "привет");
|
||||||
autoresponder.answer(1, "дела");
|
autoresponder.answer(1, "дела");
|
||||||
Assert.assertEquals("регулярка", autoresponder.answer(1, "89101234567").get().getMessage());
|
Assert.assertEquals("регулярка", autoresponder.answer(1, "89101234567").orElseThrow(NullPointerException::new).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void matchThreshold() {
|
public void matchThreshold() {
|
||||||
autoresponder.answer(1, "витамин я сьем, и арбуз получу");
|
autoresponder.answer(1, "витамин я сьем, и арбуз получу");
|
||||||
String message = "параметр себе задам: покушать витамин и арбуз, а вместе все это мультифрукт";
|
String message = "параметр себе задам: покушать витамин и арбуз, а вместе все это мультифрукт";
|
||||||
String answer = autoresponder.answer(1, message).get().getMessage();
|
String answer = autoresponder.answer(1, 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, "привет это тестирование функциональности").get().getMessage();
|
String answer = autoresponder.answer(1, "привет это тестирование функциональности").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("тест", answer);
|
Assert.assertEquals("тест", answer);
|
||||||
Assert.assertEquals("хорошо", autoresponder.answer(1, "как твои дела").get().getMessage());
|
Assert.assertEquals("хорошо", autoresponder.answer(1, "как твои дела").orElseThrow(NullPointerException::new).getMessage());
|
||||||
String answer2 = autoresponder.answer(2, "привет это тестирование функциональности").get().getMessage();
|
String answer2 = autoresponder.answer(2, "привет это тестирование функциональности").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("тест", answer2);
|
Assert.assertEquals("тест", answer2);
|
||||||
Assert.assertEquals("не знаю", autoresponder.answer(1, "нет").get().getMessage());
|
Assert.assertEquals("не знаю", autoresponder.answer(1, "нет").orElseThrow(NullPointerException::new).getMessage());
|
||||||
String message = "параметр себе задам: покушать витамин и арбуз, а вместе все это мультифрукт";
|
String message = "параметр себе задам: покушать витамин и арбуз, а вместе все это мультифрукт";
|
||||||
Assert.assertEquals("победа", autoresponder.answer(3, message).get().getMessage());
|
Assert.assertEquals("победа", autoresponder.answer(3, message).orElseThrow(NullPointerException::new).getMessage());
|
||||||
Assert.assertEquals("регулярка", autoresponder.answer(1, "8912345678").get().getMessage());
|
Assert.assertEquals("регулярка", autoresponder.answer(1, "8912345678").orElseThrow(NullPointerException::new).getMessage());
|
||||||
String answer3 = autoresponder.answer(1, "привет это тестирование функциональности").get().getMessage();
|
String answer3 = autoresponder.answer(1, "привет это тестирование функциональности").orElseThrow(NullPointerException::new).getMessage();
|
||||||
Assert.assertEquals("тест", answer3);
|
Assert.assertEquals("тест", answer3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user