mirror of
https://github.com/OtusTeam/Spring.git
synced 2026-06-20 11:14:34 +00:00
some small fixes in 2022-02 spring-00
This commit is contained in:
+3
-1
@@ -6,7 +6,9 @@ import java.util.List;
|
||||
import java.util.Scanner;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
// Вынос печати меню, чтения пункта меню и выполнения команд в методы
|
||||
// Вынос печати меню, чтения пункта меню и выполнения команд в методы.
|
||||
// - Убрали один уровень вложенности
|
||||
// - Отделили что делает приложение от того, как оно это делает
|
||||
public class Main {
|
||||
|
||||
private static final int MENU_OPTION_SHOW_ALL_NOTES = 1;
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package ru.otus;
|
||||
import ru.otus.config.AppSettings;
|
||||
import ru.otus.services.*;
|
||||
|
||||
// +AppSettings
|
||||
// +AppSettings, +ApplicationStopService, IOService стал Streams, методы MenuCommandsProcessor очистились от IOService
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
var appSettings = new AppSettings(true, "dd.mm.YYYY HH:mm:ss");
|
||||
|
||||
+13
-11
@@ -11,6 +11,7 @@ import java.util.List;
|
||||
|
||||
// OCP + ISP (AppSettings + IOService) + тесты
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
var appSettings = new AppSettings(true, "dd.mm.YYYY HH:mm:ss");
|
||||
var ioService = new IOServiceStreams(System.out, System.in);
|
||||
@@ -18,22 +19,23 @@ public class Main {
|
||||
var notesService = new NotesServiceImpl();
|
||||
var noteConverter = new NoteConverterImpl(appSettings);
|
||||
|
||||
var menuOptions = List.of(
|
||||
new MenuOption(1, "Вывести все заметки"),
|
||||
new MenuOption(2, "Добавить заметку"),
|
||||
new MenuOption(3, "Изменить заметку"),
|
||||
new MenuOption(4, "Удалить заметку"),
|
||||
new MenuOption(5, "Выйти")
|
||||
var showAllNotesMenuOption = new MenuOption(1, "Вывести все заметки");
|
||||
var addNewNoteMenuOption = new MenuOption(2, "Добавить заметку");
|
||||
var updateNoteMenuOption = new MenuOption(3, "Изменить заметку");
|
||||
var deleteNoteMenuOption = new MenuOption(4, "Удалить заметку");
|
||||
var stopApplicationMenuOption = new MenuOption(5, "Выйти");
|
||||
|
||||
var menuOptions = List.of(showAllNotesMenuOption, addNewNoteMenuOption,
|
||||
updateNoteMenuOption, deleteNoteMenuOption, stopApplicationMenuOption
|
||||
);
|
||||
var menuOptionsRegistry = new MenuOptionsRegistryImpl(menuOptions);
|
||||
|
||||
var processors = List.of(
|
||||
new ShowAllNotesSingleCommandProcessor(ioService, notesService, noteConverter, menuOptions.get(0)),
|
||||
new AddNewNoteSingleCommandProcessor(ioService, notesService, menuOptions.get(1)),
|
||||
new UpdateNoteSingleCommandProcessor(ioService, notesService, menuOptions.get(2)),
|
||||
new DeleteNoteSingleCommandProcessor(ioService, notesService, menuOptions.get(3)),
|
||||
new StopApplicationSingleCommandProcessor(applicationStopService, menuOptions.get(4))
|
||||
new ShowAllNotesSingleCommandProcessor(ioService, notesService, noteConverter, showAllNotesMenuOption),
|
||||
new AddNewNoteSingleCommandProcessor(ioService, notesService, addNewNoteMenuOption),
|
||||
new UpdateNoteSingleCommandProcessor(ioService, notesService, updateNoteMenuOption),
|
||||
new DeleteNoteSingleCommandProcessor(ioService, notesService, deleteNoteMenuOption),
|
||||
new StopApplicationSingleCommandProcessor(applicationStopService, stopApplicationMenuOption)
|
||||
);
|
||||
|
||||
var menuCommandsProcessor = new MenuCommandsProcessorImpl(processors);
|
||||
|
||||
+1
@@ -30,6 +30,7 @@ class MenuOptionsRegistryImplTest {
|
||||
.containsExactlyInAnyOrderElementsOf(options);
|
||||
}
|
||||
|
||||
// Обратить внимание на работу с Optional
|
||||
@DisplayName("должен корректно возвращать опцию меню по ее идентификатору ")
|
||||
@Test
|
||||
void shouldReturnExpectedMenuOptionById() {
|
||||
|
||||
-1
@@ -49,7 +49,6 @@ class AddNewNoteSingleCommandProcessorTest {
|
||||
verify(notesService).save(captor.capture());
|
||||
var actualNote = captor.getValue();
|
||||
assertThat(actualNote).extracting(Note::getText).isEqualTo(expectedNoteText);
|
||||
|
||||
}
|
||||
|
||||
@DisplayName("должен возвращает ожидаемый тип обрабатываемой команды")
|
||||
|
||||
Reference in New Issue
Block a user