fuck that dogshit

This commit is contained in:
2026-04-02 22:17:00 +03:00
parent 58d4b3d710
commit 58b7256a04
42 changed files with 591 additions and 327 deletions
Generated
+1
View File
@@ -0,0 +1 @@
Lab5
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
+1 -1
View File
@@ -41,7 +41,7 @@ tasks.test {
}
tasks.named<ShadowJar>("shadowJar") {
archiveBaseName.set("lab5")
archiveBaseName.set("lab5 - копия")
archiveClassifier.set("")
archiveVersion.set("1.0.0")
manifest {
+3 -1
View File
@@ -1,2 +1,4 @@
id,name,coordX,coordY,creationDate,realHero,hasToothpick,impactSpeed,soundtrackName,minutesOfWaiting,weaponType,carCool
ffe02d33-50c7-4d3d-aadc-9e524a35b8a6,fdsgsdf,34,23,2026-03-21,true,true,34.0,asdfsadf,3124.0,null,true
f3c595f3-b940-47e4-bfc5-8339f4f5f70a,asd,123,123,2026-04-02,true,false,988.0,qwe,213.0,null,true
5e955503-442a-4303-ae1b-7b55ee1d6601,name,1231231,89,2026-04-02,true,false,555.0,j,90.0,null,true
18d2fac0-ac38-45e4-94ee-9606eabc005b,qwe,23,123,2026-04-02,true,false,123.0,123,123.0,null,true
1 id name coordX coordY creationDate realHero hasToothpick impactSpeed soundtrackName minutesOfWaiting weaponType carCool
2 ffe02d33-50c7-4d3d-aadc-9e524a35b8a6 f3c595f3-b940-47e4-bfc5-8339f4f5f70a fdsgsdf asd 34 123 23 123 2026-03-21 2026-04-02 true true false 34.0 988.0 asdfsadf qwe 3124.0 213.0 null true
3 5e955503-442a-4303-ae1b-7b55ee1d6601 name 1231231 89 2026-04-02 true false 555.0 j 90.0 null true
4 18d2fac0-ac38-45e4-94ee-9606eabc005b qwe 23 123 2026-04-02 true false 123.0 123 123.0 null true
+3 -3
View File
@@ -1,3 +1,3 @@
2026-03-21 17:02:01.121 [main] INFO collection.CollectionManager - [COMMANDS] {IS_EMPTY} Проверка наличия элементов в коллекции
2026-03-21 17:02:01.123 [main] INFO collection.CollectionManager - [COMMANDS] {GET_ALL} Возвращена коллекция
2026-03-21 17:02:06.184 [main] INFO collection.CollectionManager - [COMMANDS] {GET_ALL} Возвращена коллекция
2026-04-02 14:56:32.354 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
2026-04-02 14:56:35.956 [main] INFO collection.CollectionManager - [COMMANDS] {IS_EMPTY} Проверка наличия элементов в коллекции
2026-04-02 14:56:35.958 [main] INFO collection.CollectionManager - [COMMANDS] {GET_ALL} Возвращена коллекция
+3
View File
@@ -0,0 +1,3 @@
2026-03-21 17:02:01.121 [main] INFO collection.CollectionManager - [COMMANDS] {IS_EMPTY} Проверка наличия элементов в коллекции
2026-03-21 17:02:01.123 [main] INFO collection.CollectionManager - [COMMANDS] {GET_ALL} Возвращена коллекция
2026-03-21 17:02:06.184 [main] INFO collection.CollectionManager - [COMMANDS] {GET_ALL} Возвращена коллекция
+81
View File
@@ -0,0 +1,81 @@
2026-04-02 14:27:32.548 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 8719916f-9af2-418a-9f08-7da6db7c2316
2026-04-02 14:27:32.553 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SIZE} Получен размер коллекции
2026-04-02 14:27:32.557 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 67b75966-e1ea-45ff-8d78-1186ffaf6b8c
2026-04-02 14:27:32.557 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_BY_ID} поиск элемента по id: 67b75966-e1ea-45ff-8d78-1186ffaf6b8c
2026-04-02 14:27:32.557 [Test worker] INFO collection.CollectionManager - [COMMANDS] {REMOVE_BY_ID} Удалён элемент 67b75966-e1ea-45ff-8d78-1186ffaf6b8c от 2026-04-02
2026-04-02 14:27:32.557 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SIZE} Получен размер коллекции
2026-04-02 14:27:32.557 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_BY_ID} поиск элемента по id: 67b75966-e1ea-45ff-8d78-1186ffaf6b8c
2026-04-02 14:27:32.799 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#1
2026-04-02 14:27:33.074 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #1#2
2026-04-02 14:27:33.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd1 on Command(#1).getName()
2026-04-02 14:27:33.075 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#3
2026-04-02 14:27:33.075 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #3#4
2026-04-02 14:27:33.076 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd2 on Command(#3).getName()
2026-04-02 14:27:33.076 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#5
2026-04-02 14:27:33.076 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #5#6
2026-04-02 14:27:33.076 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd3 on Command(#5).getName()
2026-04-02 14:27:33.076 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#7
2026-04-02 14:27:33.077 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #7#8
2026-04-02 14:27:33.077 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd4 on Command(#7).getName()
2026-04-02 14:27:33.077 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#9
2026-04-02 14:27:33.078 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #9#10
2026-04-02 14:27:33.078 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd5 on Command(#9).getName()
2026-04-02 14:27:33.078 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#11
2026-04-02 14:27:33.078 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #11#12
2026-04-02 14:27:33.078 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd6 on Command(#11).getName()
2026-04-02 14:27:33.078 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#13
2026-04-02 14:27:33.079 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #13#14
2026-04-02 14:27:33.079 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd7 on Command(#13).getName()
2026-04-02 14:27:33.079 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#15
2026-04-02 14:27:33.079 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #15#16
2026-04-02 14:27:33.079 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd8 on Command(#15).getName()
2026-04-02 14:27:33.080 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#17
2026-04-02 14:27:33.080 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #17#18
2026-04-02 14:27:33.080 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd9 on Command(#17).getName()
2026-04-02 14:27:33.080 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#19
2026-04-02 14:27:33.081 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #19#20
2026-04-02 14:27:33.081 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd10 on Command(#19).getName()
2026-04-02 14:27:33.081 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#21
2026-04-02 14:27:33.081 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #21#22
2026-04-02 14:27:33.081 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd11 on Command(#21).getName()
2026-04-02 14:27:33.081 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#23
2026-04-02 14:27:33.082 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #23#24
2026-04-02 14:27:33.082 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd12 on Command(#23).getName()
2026-04-02 14:27:33.082 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#25
2026-04-02 14:27:33.082 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #25#26
2026-04-02 14:27:33.082 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd13 on Command(#25).getName()
2026-04-02 14:27:33.082 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#27
2026-04-02 14:27:33.083 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #27#28
2026-04-02 14:27:33.083 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd14 on Command(#27).getName()
2026-04-02 14:27:33.083 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#29
2026-04-02 14:27:33.083 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #29#30
2026-04-02 14:27:33.083 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd15 on Command(#29).getName()
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#1).execute([])
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#3).execute([])
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#5).execute([])
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#7).execute([])
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#9).execute([])
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#11).execute([])
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#13).execute([])
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#15).execute([])
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#17).execute([])
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#19).execute([])
2026-04-02 14:27:33.084 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#21).execute([])
2026-04-02 14:27:33.085 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#23).execute([])
2026-04-02 14:27:33.085 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#25).execute([])
2026-04-02 14:27:33.085 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#27).execute([])
2026-04-02 14:27:33.085 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#29).execute([])
2026-04-02 14:27:33.091 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент b16fbc59-fb83-4589-b263-53fca5e985c9
2026-04-02 14:27:33.091 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 3af1a9a6-c52c-4229-bb62-8c4fe266350d
2026-04-02 14:27:33.091 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 2fee1552-48d5-4fe6-8d3a-50fdf4addc03
2026-04-02 14:27:33.091 [Test worker] INFO collection.CollectionManager - [COMMANDS] {MIN_BY_NAME} Получение минимального элемента коллекции по имени
2026-04-02 14:27:33.092 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 55f43ee1-2b33-4a48-b007-854ff3fadcae
2026-04-02 14:27:33.093 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент f89f6e87-3d49-4495-8fb2-1c114e9efb52
2026-04-02 14:27:33.093 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент a7a16dbd-2aba-4830-a299-566b72938bfb
2026-04-02 14:27:33.093 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_MIN_WAIT_DESC} Получение списка элементов коллекции по времени ожидания
2026-04-02 14:27:33.095 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 42a39ae4-04ff-4a05-b602-54d921ffe18d
2026-04-02 14:27:33.095 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 175ba53d-5f43-4065-aa26-00aabbd580ff
2026-04-02 14:27:33.095 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент a025566a-a8eb-467c-af27-b107b7db981a
2026-04-02 14:27:33.095 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SUM_MIN_WAIT} Получение минимального элемента коллекции по времени ожидания
2026-04-02 14:27:35.358 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:27:45.070 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
+2
View File
@@ -0,0 +1,2 @@
2026-04-02 14:29:09.877 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:29:32.401 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
+2
View File
@@ -0,0 +1,2 @@
2026-04-02 14:33:25.924 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:33:45.569 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
+2
View File
@@ -0,0 +1,2 @@
2026-04-02 14:34:34.820 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:34:44.072 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
+1
View File
@@ -0,0 +1 @@
2026-04-02 14:35:00.430 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
+2
View File
@@ -0,0 +1,2 @@
2026-04-02 14:38:10.504 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:38:24.265 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
+4
View File
@@ -0,0 +1,4 @@
2026-04-02 14:41:12.950 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:41:23.301 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
2026-04-02 14:41:34.369 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:41:41.567 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
+81
View File
@@ -0,0 +1,81 @@
2026-04-02 14:43:32.283 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 8919f02d-0e18-4a66-b67f-c401a3563346
2026-04-02 14:43:32.289 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SIZE} Получен размер коллекции
2026-04-02 14:43:32.292 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 19861792-bb07-443a-aa4a-e7a8bf8db48a
2026-04-02 14:43:32.293 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_BY_ID} поиск элемента по id: 19861792-bb07-443a-aa4a-e7a8bf8db48a
2026-04-02 14:43:32.293 [Test worker] INFO collection.CollectionManager - [COMMANDS] {REMOVE_BY_ID} Удалён элемент 19861792-bb07-443a-aa4a-e7a8bf8db48a от 2026-04-02
2026-04-02 14:43:32.293 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SIZE} Получен размер коллекции
2026-04-02 14:43:32.293 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_BY_ID} поиск элемента по id: 19861792-bb07-443a-aa4a-e7a8bf8db48a
2026-04-02 14:43:32.532 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#1
2026-04-02 14:43:32.798 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #1#2
2026-04-02 14:43:32.799 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd1 on Command(#1).getName()
2026-04-02 14:43:32.799 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#3
2026-04-02 14:43:32.799 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #3#4
2026-04-02 14:43:32.800 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd2 on Command(#3).getName()
2026-04-02 14:43:32.800 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#5
2026-04-02 14:43:32.800 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #5#6
2026-04-02 14:43:32.800 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd3 on Command(#5).getName()
2026-04-02 14:43:32.800 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#7
2026-04-02 14:43:32.801 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #7#8
2026-04-02 14:43:32.801 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd4 on Command(#7).getName()
2026-04-02 14:43:32.801 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#9
2026-04-02 14:43:32.802 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #9#10
2026-04-02 14:43:32.802 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd5 on Command(#9).getName()
2026-04-02 14:43:32.802 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#11
2026-04-02 14:43:32.802 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #11#12
2026-04-02 14:43:32.802 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd6 on Command(#11).getName()
2026-04-02 14:43:32.802 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#13
2026-04-02 14:43:32.803 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #13#14
2026-04-02 14:43:32.803 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd7 on Command(#13).getName()
2026-04-02 14:43:32.803 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#15
2026-04-02 14:43:32.803 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #15#16
2026-04-02 14:43:32.803 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd8 on Command(#15).getName()
2026-04-02 14:43:32.804 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#17
2026-04-02 14:43:32.804 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #17#18
2026-04-02 14:43:32.804 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd9 on Command(#17).getName()
2026-04-02 14:43:32.804 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#19
2026-04-02 14:43:32.805 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #19#20
2026-04-02 14:43:32.805 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd10 on Command(#19).getName()
2026-04-02 14:43:32.805 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#21
2026-04-02 14:43:32.805 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #21#22
2026-04-02 14:43:32.805 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd11 on Command(#21).getName()
2026-04-02 14:43:32.805 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#23
2026-04-02 14:43:32.806 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #23#24
2026-04-02 14:43:32.806 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd12 on Command(#23).getName()
2026-04-02 14:43:32.806 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#25
2026-04-02 14:43:32.806 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #25#26
2026-04-02 14:43:32.806 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd13 on Command(#25).getName()
2026-04-02 14:43:32.806 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#27
2026-04-02 14:43:32.807 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #27#28
2026-04-02 14:43:32.807 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd14 on Command(#27).getName()
2026-04-02 14:43:32.807 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#29
2026-04-02 14:43:32.807 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #29#30
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd15 on Command(#29).getName()
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#1).execute([])
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#3).execute([])
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#5).execute([])
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#7).execute([])
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#9).execute([])
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#11).execute([])
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#13).execute([])
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#15).execute([])
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#17).execute([])
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#19).execute([])
2026-04-02 14:43:32.808 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#21).execute([])
2026-04-02 14:43:32.809 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#23).execute([])
2026-04-02 14:43:32.809 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#25).execute([])
2026-04-02 14:43:32.809 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#27).execute([])
2026-04-02 14:43:32.809 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#29).execute([])
2026-04-02 14:43:32.815 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 6760c425-4474-42f2-92c2-be8ee8797d31
2026-04-02 14:43:32.815 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент eaa8783f-13a1-4c7b-9519-00f2cc9052d6
2026-04-02 14:43:32.815 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 19038992-fcfd-46b6-b250-45708692fc39
2026-04-02 14:43:32.815 [Test worker] INFO collection.CollectionManager - [COMMANDS] {MIN_BY_NAME} Получение минимального элемента коллекции по имени
2026-04-02 14:43:32.816 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 54bc9968-d340-42ea-a75c-c548634051ad
2026-04-02 14:43:32.817 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент b612d943-9708-4124-aa9c-202e79c49015
2026-04-02 14:43:32.817 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 67eca589-0503-4f0f-9708-093d09b43162
2026-04-02 14:43:32.817 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_MIN_WAIT_DESC} Получение списка элементов коллекции по времени ожидания
2026-04-02 14:43:32.819 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент d1622b6f-67be-40c4-9ab0-a9c9e2c1148d
2026-04-02 14:43:32.819 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент e6956824-04c7-4e44-aaba-a924f6b47081
2026-04-02 14:43:32.819 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 26d62891-6c78-47fe-9863-6e74b891740f
2026-04-02 14:43:32.819 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SUM_MIN_WAIT} Получение минимального элемента коллекции по времени ожидания
2026-04-02 14:43:35.791 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:43:49.584 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
+81
View File
@@ -0,0 +1,81 @@
2026-04-02 14:52:34.234 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 4b27d8dc-0bb9-4301-a04e-7cf21c97a0f8
2026-04-02 14:52:34.239 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SIZE} Получен размер коллекции
2026-04-02 14:52:34.243 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент a370bb0a-63b9-40e1-b334-0045c0206a41
2026-04-02 14:52:34.243 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_BY_ID} поиск элемента по id: a370bb0a-63b9-40e1-b334-0045c0206a41
2026-04-02 14:52:34.243 [Test worker] INFO collection.CollectionManager - [COMMANDS] {REMOVE_BY_ID} Удалён элемент a370bb0a-63b9-40e1-b334-0045c0206a41 от 2026-04-02
2026-04-02 14:52:34.243 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SIZE} Получен размер коллекции
2026-04-02 14:52:34.243 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_BY_ID} поиск элемента по id: a370bb0a-63b9-40e1-b334-0045c0206a41
2026-04-02 14:52:34.481 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#1
2026-04-02 14:52:34.745 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #1#2
2026-04-02 14:52:34.746 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd1 on Command(#1).getName()
2026-04-02 14:52:34.746 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#3
2026-04-02 14:52:34.747 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #3#4
2026-04-02 14:52:34.747 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd2 on Command(#3).getName()
2026-04-02 14:52:34.747 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#5
2026-04-02 14:52:34.747 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #5#6
2026-04-02 14:52:34.747 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd3 on Command(#5).getName()
2026-04-02 14:52:34.747 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#7
2026-04-02 14:52:34.748 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #7#8
2026-04-02 14:52:34.748 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd4 on Command(#7).getName()
2026-04-02 14:52:34.748 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#9
2026-04-02 14:52:34.749 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #9#10
2026-04-02 14:52:34.749 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd5 on Command(#9).getName()
2026-04-02 14:52:34.749 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#11
2026-04-02 14:52:34.749 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #11#12
2026-04-02 14:52:34.749 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd6 on Command(#11).getName()
2026-04-02 14:52:34.749 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#13
2026-04-02 14:52:34.750 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #13#14
2026-04-02 14:52:34.750 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd7 on Command(#13).getName()
2026-04-02 14:52:34.750 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#15
2026-04-02 14:52:34.750 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #15#16
2026-04-02 14:52:34.751 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd8 on Command(#15).getName()
2026-04-02 14:52:34.751 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#17
2026-04-02 14:52:34.751 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #17#18
2026-04-02 14:52:34.751 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd9 on Command(#17).getName()
2026-04-02 14:52:34.751 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#19
2026-04-02 14:52:34.752 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #19#20
2026-04-02 14:52:34.752 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd10 on Command(#19).getName()
2026-04-02 14:52:34.752 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#21
2026-04-02 14:52:34.752 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #21#22
2026-04-02 14:52:34.753 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd11 on Command(#21).getName()
2026-04-02 14:52:34.753 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#23
2026-04-02 14:52:34.753 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #23#24
2026-04-02 14:52:34.753 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd12 on Command(#23).getName()
2026-04-02 14:52:34.753 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#25
2026-04-02 14:52:34.754 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #25#26
2026-04-02 14:52:34.754 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd13 on Command(#25).getName()
2026-04-02 14:52:34.754 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#27
2026-04-02 14:52:34.754 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #27#28
2026-04-02 14:52:34.754 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd14 on Command(#27).getName()
2026-04-02 14:52:34.754 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#29
2026-04-02 14:52:34.755 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #29#30
2026-04-02 14:52:34.755 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd15 on Command(#29).getName()
2026-04-02 14:52:34.755 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#1).execute([])
2026-04-02 14:52:34.755 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#3).execute([])
2026-04-02 14:52:34.755 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#5).execute([])
2026-04-02 14:52:34.755 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#7).execute([])
2026-04-02 14:52:34.755 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#9).execute([])
2026-04-02 14:52:34.755 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#11).execute([])
2026-04-02 14:52:34.756 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#13).execute([])
2026-04-02 14:52:34.756 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#15).execute([])
2026-04-02 14:52:34.756 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#17).execute([])
2026-04-02 14:52:34.756 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#19).execute([])
2026-04-02 14:52:34.756 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#21).execute([])
2026-04-02 14:52:34.756 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#23).execute([])
2026-04-02 14:52:34.756 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#25).execute([])
2026-04-02 14:52:34.756 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#27).execute([])
2026-04-02 14:52:34.756 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#29).execute([])
2026-04-02 14:52:34.762 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент c59d0ec1-f645-4a83-87b0-cfac26d5fa02
2026-04-02 14:52:34.762 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент e12705d2-c00f-40d4-92de-6fe927682321
2026-04-02 14:52:34.762 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент cb7d0fb2-f8ca-4805-b697-508709b84825
2026-04-02 14:52:34.762 [Test worker] INFO collection.CollectionManager - [COMMANDS] {MIN_BY_NAME} Получение минимального элемента коллекции по имени
2026-04-02 14:52:34.764 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 7bf68ceb-015f-422e-b524-2c1bab2d2fc4
2026-04-02 14:52:34.764 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 01426ba6-1a76-4424-9da3-b66f6ecd36a2
2026-04-02 14:52:34.764 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 58f2d29c-548c-4e49-8ba1-f9a256dc2de9
2026-04-02 14:52:34.764 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_MIN_WAIT_DESC} Получение списка элементов коллекции по времени ожидания
2026-04-02 14:52:34.766 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент a14eb209-966b-4689-bc73-45511482da23
2026-04-02 14:52:34.766 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 0c71f2e7-6613-436b-9978-915b9304879d
2026-04-02 14:52:34.766 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 171b03fd-41c7-4241-96fa-9d04213b5602
2026-04-02 14:52:34.766 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SUM_MIN_WAIT} Получение минимального элемента коллекции по времени ожидания
2026-04-02 14:52:37.985 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:52:48.681 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
+81
View File
@@ -0,0 +1,81 @@
2026-04-02 14:54:19.537 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 62893a4f-bd31-4bfa-8f0a-5d232adeb435
2026-04-02 14:54:19.543 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SIZE} Получен размер коллекции
2026-04-02 14:54:19.547 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 4a2826e4-4467-4a68-8ce4-7e3b1b106051
2026-04-02 14:54:19.547 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_BY_ID} поиск элемента по id: 4a2826e4-4467-4a68-8ce4-7e3b1b106051
2026-04-02 14:54:19.547 [Test worker] INFO collection.CollectionManager - [COMMANDS] {REMOVE_BY_ID} Удалён элемент 4a2826e4-4467-4a68-8ce4-7e3b1b106051 от 2026-04-02
2026-04-02 14:54:19.547 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SIZE} Получен размер коллекции
2026-04-02 14:54:19.547 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_BY_ID} поиск элемента по id: 4a2826e4-4467-4a68-8ce4-7e3b1b106051
2026-04-02 14:54:19.792 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#1
2026-04-02 14:54:20.064 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #1#2
2026-04-02 14:54:20.065 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd1 on Command(#1).getName()
2026-04-02 14:54:20.065 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#3
2026-04-02 14:54:20.066 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #3#4
2026-04-02 14:54:20.066 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd2 on Command(#3).getName()
2026-04-02 14:54:20.066 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#5
2026-04-02 14:54:20.066 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #5#6
2026-04-02 14:54:20.067 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd3 on Command(#5).getName()
2026-04-02 14:54:20.067 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#7
2026-04-02 14:54:20.067 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #7#8
2026-04-02 14:54:20.067 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd4 on Command(#7).getName()
2026-04-02 14:54:20.067 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#9
2026-04-02 14:54:20.068 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #9#10
2026-04-02 14:54:20.068 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd5 on Command(#9).getName()
2026-04-02 14:54:20.068 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#11
2026-04-02 14:54:20.068 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #11#12
2026-04-02 14:54:20.069 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd6 on Command(#11).getName()
2026-04-02 14:54:20.069 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#13
2026-04-02 14:54:20.069 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #13#14
2026-04-02 14:54:20.069 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd7 on Command(#13).getName()
2026-04-02 14:54:20.069 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#15
2026-04-02 14:54:20.070 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #15#16
2026-04-02 14:54:20.070 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd8 on Command(#15).getName()
2026-04-02 14:54:20.070 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#17
2026-04-02 14:54:20.070 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #17#18
2026-04-02 14:54:20.070 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd9 on Command(#17).getName()
2026-04-02 14:54:20.070 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#19
2026-04-02 14:54:20.071 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #19#20
2026-04-02 14:54:20.071 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd10 on Command(#19).getName()
2026-04-02 14:54:20.071 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#21
2026-04-02 14:54:20.071 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #21#22
2026-04-02 14:54:20.072 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd11 on Command(#21).getName()
2026-04-02 14:54:20.072 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#23
2026-04-02 14:54:20.072 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #23#24
2026-04-02 14:54:20.072 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd12 on Command(#23).getName()
2026-04-02 14:54:20.072 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#25
2026-04-02 14:54:20.073 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #25#26
2026-04-02 14:54:20.073 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd13 on Command(#25).getName()
2026-04-02 14:54:20.073 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#27
2026-04-02 14:54:20.073 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #27#28
2026-04-02 14:54:20.073 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd14 on Command(#27).getName()
2026-04-02 14:54:20.073 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#29
2026-04-02 14:54:20.074 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #29#30
2026-04-02 14:54:20.074 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd15 on Command(#29).getName()
2026-04-02 14:54:20.074 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#1).execute([])
2026-04-02 14:54:20.074 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#3).execute([])
2026-04-02 14:54:20.074 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#5).execute([])
2026-04-02 14:54:20.074 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#7).execute([])
2026-04-02 14:54:20.074 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#9).execute([])
2026-04-02 14:54:20.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#11).execute([])
2026-04-02 14:54:20.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#13).execute([])
2026-04-02 14:54:20.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#15).execute([])
2026-04-02 14:54:20.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#17).execute([])
2026-04-02 14:54:20.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#19).execute([])
2026-04-02 14:54:20.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#21).execute([])
2026-04-02 14:54:20.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#23).execute([])
2026-04-02 14:54:20.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#25).execute([])
2026-04-02 14:54:20.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#27).execute([])
2026-04-02 14:54:20.075 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#29).execute([])
2026-04-02 14:54:20.082 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент ce9e92b7-2127-479f-b6fe-bf1b420e8787
2026-04-02 14:54:20.082 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 41b3daf7-178b-49b9-8b30-b6dd8f7e2612
2026-04-02 14:54:20.082 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 91ccc3b8-6257-42b8-bfb3-e60973a555e8
2026-04-02 14:54:20.082 [Test worker] INFO collection.CollectionManager - [COMMANDS] {MIN_BY_NAME} Получение минимального элемента коллекции по имени
2026-04-02 14:54:20.083 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент df6d53d1-9d7d-41b6-a920-f2d76eed2300
2026-04-02 14:54:20.083 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 0f18f2bd-2cc5-4b22-9746-03fa5411b6e1
2026-04-02 14:54:20.084 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 248355ee-b8ea-447d-b7dd-212cb2332799
2026-04-02 14:54:20.084 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_MIN_WAIT_DESC} Получение списка элементов коллекции по времени ожидания
2026-04-02 14:54:20.085 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент e6166493-2af6-4b42-9877-5e9bee97b157
2026-04-02 14:54:20.086 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент bae6b255-bc07-450b-967c-45f5c60277db
2026-04-02 14:54:20.086 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 0e383acb-91c8-42f2-81bc-cda7e3fb8003
2026-04-02 14:54:20.086 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SUM_MIN_WAIT} Получение минимального элемента коллекции по времени ожидания
2026-04-02 14:54:22.411 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:54:36.521 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
+81
View File
@@ -0,0 +1,81 @@
2026-04-02 14:55:24.766 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент acc69bbc-9412-448d-acf0-481379ca6cc4
2026-04-02 14:55:24.772 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SIZE} Получен размер коллекции
2026-04-02 14:55:24.775 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 184fdd8f-ffc7-45b1-8582-981e6aa8fa76
2026-04-02 14:55:24.776 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_BY_ID} поиск элемента по id: 184fdd8f-ffc7-45b1-8582-981e6aa8fa76
2026-04-02 14:55:24.776 [Test worker] INFO collection.CollectionManager - [COMMANDS] {REMOVE_BY_ID} Удалён элемент 184fdd8f-ffc7-45b1-8582-981e6aa8fa76 от 2026-04-02
2026-04-02 14:55:24.776 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SIZE} Получен размер коллекции
2026-04-02 14:55:24.776 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_BY_ID} поиск элемента по id: 184fdd8f-ffc7-45b1-8582-981e6aa8fa76
2026-04-02 14:55:25.015 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#1
2026-04-02 14:55:25.278 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #1#2
2026-04-02 14:55:25.278 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd1 on Command(#1).getName()
2026-04-02 14:55:25.278 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#3
2026-04-02 14:55:25.279 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #3#4
2026-04-02 14:55:25.279 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd2 on Command(#3).getName()
2026-04-02 14:55:25.279 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#5
2026-04-02 14:55:25.280 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #5#6
2026-04-02 14:55:25.280 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd3 on Command(#5).getName()
2026-04-02 14:55:25.280 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#7
2026-04-02 14:55:25.281 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #7#8
2026-04-02 14:55:25.281 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd4 on Command(#7).getName()
2026-04-02 14:55:25.281 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#9
2026-04-02 14:55:25.281 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #9#10
2026-04-02 14:55:25.281 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd5 on Command(#9).getName()
2026-04-02 14:55:25.281 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#11
2026-04-02 14:55:25.282 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #11#12
2026-04-02 14:55:25.282 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd6 on Command(#11).getName()
2026-04-02 14:55:25.282 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#13
2026-04-02 14:55:25.283 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #13#14
2026-04-02 14:55:25.283 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd7 on Command(#13).getName()
2026-04-02 14:55:25.283 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#15
2026-04-02 14:55:25.283 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #15#16
2026-04-02 14:55:25.283 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd8 on Command(#15).getName()
2026-04-02 14:55:25.283 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#17
2026-04-02 14:55:25.284 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #17#18
2026-04-02 14:55:25.284 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd9 on Command(#17).getName()
2026-04-02 14:55:25.284 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#19
2026-04-02 14:55:25.284 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #19#20
2026-04-02 14:55:25.284 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd10 on Command(#19).getName()
2026-04-02 14:55:25.285 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#21
2026-04-02 14:55:25.285 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #21#22
2026-04-02 14:55:25.285 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd11 on Command(#21).getName()
2026-04-02 14:55:25.285 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#23
2026-04-02 14:55:25.286 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #23#24
2026-04-02 14:55:25.286 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd12 on Command(#23).getName()
2026-04-02 14:55:25.286 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#25
2026-04-02 14:55:25.286 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #25#26
2026-04-02 14:55:25.286 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd13 on Command(#25).getName()
2026-04-02 14:55:25.286 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#27
2026-04-02 14:55:25.287 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #27#28
2026-04-02 14:55:25.287 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd14 on Command(#27).getName()
2026-04-02 14:55:25.287 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Command name=#29
2026-04-02 14:55:25.287 [Test worker] DEBUG i.m.i.i.AbstractMockFactory - Creating mockk for Unit name=child of #29#30
2026-04-02 14:55:25.287 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering cmd15 on Command(#29).getName()
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#1).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#3).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#5).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#7).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#9).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#11).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#13).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#15).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#17).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#19).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#21).execute([])
2026-04-02 14:55:25.288 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#23).execute([])
2026-04-02 14:55:25.289 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#25).execute([])
2026-04-02 14:55:25.289 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#27).execute([])
2026-04-02 14:55:25.289 [Test worker] DEBUG i.m.i.r.states.AnsweringState - Answering kotlin.Unit on Command(#29).execute([])
2026-04-02 14:55:25.295 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 40605f08-74af-4b2a-8260-2b6ee4f016ce
2026-04-02 14:55:25.295 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 89c57517-4717-44a4-b348-35724271d923
2026-04-02 14:55:25.295 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент ce5b4e3a-b45b-447e-a3b9-6a519a2a9872
2026-04-02 14:55:25.295 [Test worker] INFO collection.CollectionManager - [COMMANDS] {MIN_BY_NAME} Получение минимального элемента коллекции по имени
2026-04-02 14:55:25.296 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 991a2d1f-4d08-43ed-b57c-ee8e07dbe78d
2026-04-02 14:55:25.296 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 954d79be-82b6-45f7-bd08-f6a043d330f8
2026-04-02 14:55:25.297 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 7434245c-dbc8-4183-b8f2-eaaf2323c6f0
2026-04-02 14:55:25.297 [Test worker] INFO collection.CollectionManager - [COMMANDS] {GET_MIN_WAIT_DESC} Получение списка элементов коллекции по времени ожидания
2026-04-02 14:55:25.298 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 1627b121-f7af-4997-a2c3-b106c3ad81c5
2026-04-02 14:55:25.298 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 6cfb9839-fd46-4cdb-bb5f-8694e7ceab05
2026-04-02 14:55:25.299 [Test worker] INFO collection.CollectionManager - [COMMANDS] {ADD} Создан элемент 87bba201-338d-4023-a83f-9dac129bfc9a
2026-04-02 14:55:25.299 [Test worker] INFO collection.CollectionManager - [COMMANDS] {SUM_MIN_WAIT} Получение минимального элемента коллекции по времени ожидания
2026-04-02 14:55:27.870 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-02 14:55:54.406 [main] INFO collection.CollectionManager - [COMMANDS] {GET_INFO} Получение информации о коллекции
View File
-3
View File
@@ -1,3 +0,0 @@
info
add
help
+3 -6
View File
@@ -2,7 +2,6 @@ import collection.CollectionManager
import commands.*
import file.FileManager
import input.IOManager
import input.InputManager
import runner.CommandInvoker
/**
@@ -48,12 +47,12 @@ fun main(args: Array<String>) {
* @param invoker инвокер команд
*/
fun runRepl(
inputManager: InputManager,
inputManager: IOManager,
invoker: CommandInvoker
) {
while (true) {
val line = inputManager.readLine() ?: break
val line = inputManager.readLine(" ☭ ") ?: break
if (line.isBlank()) continue
if (line == "exit") break
@@ -77,8 +76,6 @@ fun registerCommands(
inputManager: IOManager,
) {
val activeScripts = mutableSetOf<String>()
listOf(
HelpCommand(invoker, inputManager),
InfoCommand(manager, inputManager),
@@ -88,7 +85,7 @@ fun registerCommands(
RemoveByIdCommand(manager, inputManager),
ClearCommand(manager, inputManager),
SaveCommand(manager, fileManager),
ExecuteScriptCommand(invoker, inputManager),
ExecuteScriptCommand(inputManager),
AddIfMaxCommand(manager, inputManager),
AddIfMinCommand(manager, inputManager),
HistoryCommand(invoker, inputManager),
+2 -2
View File
@@ -2,7 +2,7 @@ package commands
import collection.CollectionManager
import input.HumanBeingBuilder
import input.InputManager
import input.IOManager
/**
* Добавляет новый элемент в коллекцию.
@@ -10,7 +10,7 @@ import input.InputManager
*/
class AddCommand(
private val manager: CollectionManager,
private val inputManager: InputManager,
private val inputManager: IOManager,
) : Command {
override val name = "add"
override val description = "добавить новый элемент в коллекцию"
+2 -2
View File
@@ -2,7 +2,7 @@ package commands
import collection.CollectionManager
import input.HumanBeingBuilder
import input.InputManager
import input.IOManager
/**
* Добавляет элемент в коллекцию, если он больше наибольшего элемента.
@@ -10,7 +10,7 @@ import input.InputManager
*/
class AddIfMaxCommand(
private val manager: CollectionManager,
private val inputManager: InputManager,
private val inputManager: IOManager,
) : Command {
override val name = "add_if_max"
override val description = "добавить элемент, если он больше максимального"
+2 -2
View File
@@ -2,7 +2,7 @@ package commands
import collection.CollectionManager
import input.HumanBeingBuilder
import input.InputManager
import input.IOManager
/**
* Добавляет элемент в коллекцию, если он меньше наименьшего элемента.
@@ -10,7 +10,7 @@ import input.InputManager
*/
class AddIfMinCommand(
private val manager: CollectionManager,
private val inputManager: InputManager
private val inputManager: IOManager
) : Command {
override val name = "add_if_min"
override val description = "добавить элемент, если он меньше минимального"
+3 -3
View File
@@ -1,7 +1,7 @@
package commands
import collection.CollectionManager
import input.InputManager
import input.IOManager
/**
* Очищает коллекцию.
@@ -9,13 +9,13 @@ import input.InputManager
*/
class ClearCommand(
private val manager: CollectionManager,
private val console: InputManager
private val inputManager: IOManager
) : Command {
override val name = "clear"
override val description = "очистить коллекцию"
override fun execute(args: List<String>) {
manager.clear()
console.print("Коллекция очищена.")
inputManager.print("Коллекция очищена.")
}
}
@@ -1,11 +1,9 @@
package commands
import input.InputManager
import runner.CommandInvoker
import runner.CommandQueue
import input.IOManager
/**
* Считывает скрипт из файла в [CommandQueue], затем выполняет все команды.
* Считывает скрипт из файла в [IOManager], затем выполняет все команды.
*
* Фаза 1 (чтение): рекурсивно обходит все вложенные execute_script,
* собирает команды в очередь.
@@ -14,41 +12,20 @@ import runner.CommandQueue
* Такой подход гарантирует, что все файлы прочитаны до начала выполнения.
*/
class ExecuteScriptCommand(
private val invoker: CommandInvoker,
private val console: InputManager
private val inputManager: IOManager
) : Command {
override val name = "execute_script"
override val description = "выполнить скрипт из файла: execute_script <file>"
override fun execute(args: List<String>) {
if (args.isEmpty()) {
console.print("[Ошибка] Укажите путь к файлу. Пример: execute_script script.txt")
inputManager.printErrConsole("[Ошибка] Укажите путь к файлу. Пример: execute_script script.txt")
return
}
val filePath = args[0]
// я манал это всё
console.print("Чтение скрипта '$filePath'...")
// inputmanager добавить источник, Scanner file
val queue = CommandQueue()
queue.loadFromScript(filePath)
if (queue.isEmpty()) {
console.print("Текст Скриптонита пустой или не найден.")
return
}
console.print("Прочитано команд: ${queue.size()}. Начинаем выполнение...")
// это уже есть
while (!queue.isEmpty()) {
val line = queue.dequeue() ?: break
console.print(" [скриптонит] > $line")
invoker.execute(line)
}
console.print("Скриптонит зачитал '$filePath'.")
inputManager.print("Чтение скрипта '$filePath'...")
inputManager.addScriptScanner(filePath)
}
}
+3 -3
View File
@@ -1,17 +1,17 @@
package commands
import input.InputManager
import input.IOManager
/**
* Завершает программу без сохранения. Теперь это Callback
*/
class ExitCommand(
private val console: InputManager,
private val inputManager: IOManager,
) : Command {
override val name = "exit"
override val description = "завершить программу"
override fun execute(args: List<String>) {
console.print("До свидания!")
inputManager.print("До свидания!")
}
}
+3 -3
View File
@@ -1,6 +1,6 @@
package commands
import input.InputManager
import input.IOManager
import runner.CommandInvoker
/**
@@ -9,7 +9,7 @@ import runner.CommandInvoker
*/
class HelpCommand(
private val invoker: CommandInvoker,
private val console: InputManager
private val inputManager: IOManager
) : Command {
override val name = "help"
override val description = "вывести справку по доступным командам"
@@ -17,6 +17,6 @@ class HelpCommand(
override fun execute(args: List<String>) {
invoker.getCommands().values
.sortedBy { it.name }
.forEach { console.print(" ${it.name.padEnd(40)} — ${it.description}") }
.forEach { inputManager.print(" ${it.name.padEnd(40)} — ${it.description}") }
}
}
+4 -4
View File
@@ -1,6 +1,6 @@
package commands
import input.InputManager
import input.IOManager
import runner.CommandInvoker
/**
@@ -9,7 +9,7 @@ import runner.CommandInvoker
*/
class HistoryCommand(
private val invoker: CommandInvoker,
private val console: InputManager
private val inputManager: IOManager
) : Command {
override val name = "history"
override val description = "вывести последние 12 команд"
@@ -17,9 +17,9 @@ class HistoryCommand(
override fun execute(args: List<String>) {
val history = invoker.getHistory()
if (history.isEmpty()) {
console.print("История пуста.")
inputManager.print("История пуста.")
return
}
history.forEachIndexed { i, cmd -> console.print(" ${i + 1}. $cmd") }
history.forEachIndexed { i, cmd -> inputManager.print(" ${i + 1}. $cmd") }
}
}
+3 -3
View File
@@ -1,7 +1,7 @@
package commands
import collection.CollectionManager
import input.InputManager
import input.IOManager
/**
* Выводит информацию о коллекции (тип, дата инициализации, размер).
@@ -9,10 +9,10 @@ import input.InputManager
*/
class InfoCommand(
private val manager: CollectionManager,
private val console: InputManager
private val inputManager: IOManager
) : Command {
override val name = "info"
override val description = "вывести информацию о коллекции"
override fun execute(args: List<String>) = console.print(manager.getInfo())
override fun execute(args: List<String>) = inputManager.print(manager.getInfo())
}
+3 -3
View File
@@ -8,14 +8,14 @@ import input.IOManager
*/
class MinByNameCommand(
private val manager: CollectionManager,
private val console: IOManager
private val inputManager: IOManager
) : Command {
override val name = "min_by_name"
override val description = "вывести элемент с минимальным именем"
override fun execute(args: List<String>) {
val min = manager.minByName()
if (min == null) console.print("Коллекция пуста.")
else console.print(min.toString())
if (min == null) inputManager.print("Коллекция пуста.")
else inputManager.print(min.toString())
}
}
@@ -8,14 +8,14 @@ import input.IOManager
*/
class PrintDescendingMinutesCommand(
private val manager: CollectionManager,
private val console: IOManager
private val inputManager: IOManager
) : Command {
override val name = "print_field_descending_minutes_of_waiting"
override val description = "вывести minutesOfWaiting в порядке убывания"
override fun execute(args: List<String>) {
val values = manager.getMinutesOfWaitingDescending()
if (values.isEmpty()) console.print("Коллекция пуста.")
else values.forEach { console.print(it.toString()) }
if (values.isEmpty()) inputManager.print("Коллекция пуста.")
else values.forEach { inputManager.print(it.toString()) }
}
}
@@ -10,23 +10,23 @@ import java.util.UUID
*/
class RemoveByIdCommand(
private val manager: CollectionManager,
private val console: IOManager
private val inputManager: IOManager
) : Command {
override val name = "remove_by_id"
override val description = "удалить элемент по id: remove_by_id <uuid>"
override fun execute(args: List<String>) {
if (args.isEmpty()) {
console.print("[Ошибка] Укажите id. Пример: remove_by_id <uuid>")
inputManager.print("[Ошибка] Укажите id. Пример: remove_by_id <uuid>")
return
}
val id = try {
UUID.fromString(args[0])
} catch (e: IllegalArgumentException) {
console.print("[Ошибка] Некорректный UUID: '${args[0]}'")
inputManager.print("[Ошибка] Некорректный UUID: '${args[0]}'")
return
}
if (manager.removeById(id)) console.print("Элемент удалён.")
else console.print("[Ошибка] Элемент с id '$id' не найден.")
if (manager.removeById(id)) inputManager.print("Элемент удалён.")
else inputManager.print("[Ошибка] Элемент с id '$id' не найден.")
}
}
+4 -4
View File
@@ -1,7 +1,7 @@
package commands
import collection.CollectionManager
import input.InputManager
import input.IOManager
/**
* Выводит все элементы коллекции в строковом представлении.
@@ -9,16 +9,16 @@ import input.InputManager
*/
class ShowCommand(
private val manager: CollectionManager,
private val console: InputManager
private val inputManager: IOManager
) : Command {
override val name = "show"
override val description = "вывести все элементы коллекции"
override fun execute(args: List<String>) {
if (manager.isEmpty()) {
console.print("Коллекция пуста.")
inputManager.print("Коллекция пуста.")
return
}
manager.getAll().forEach { console.print(it.toString()) }
manager.getAll().forEach { inputManager.print(it.toString()) }
}
}
@@ -1,18 +1,18 @@
package commands
import collection.CollectionManager
import input.InputManager
import input.IOManager
/**
* Выводит сумму значений поля [models.HumanBeing.minutesOfWaiting].
*/
class SumOfMinutesCommand(
private val manager: CollectionManager,
private val console: InputManager
private val inputManager: IOManager
) : Command {
override val name = "sum_of_minutes_of_waiting"
override val description = "вывести сумму minutesOfWaiting всех элементов"
override fun execute(args: List<String>) =
console.print("Сумма minutesOfWaiting: ${manager.sumOfMinutesOfWaiting()}")
inputManager.print("Сумма minutesOfWaiting: ${manager.sumOfMinutesOfWaiting()}")
}
+2 -2
View File
@@ -2,7 +2,7 @@ package commands
import collection.CollectionManager
import input.HumanBeingBuilder
import input.InputManager
import input.IOManager
import java.util.UUID
/**
@@ -12,7 +12,7 @@ import java.util.UUID
*/
class UpdateCommand(
private val manager: CollectionManager,
private val inputManager: InputManager,
private val inputManager: IOManager,
) : Command {
override val name = "update"
override val description = "обновить элемент по id: update <uuid>"
+16 -25
View File
@@ -16,9 +16,7 @@ import models.WeaponType
*
* @property inputManager источник ввода
*/
class HumanBeingBuilder(private val inputManager: InputManager) {
private val console = IOManager()
class HumanBeingBuilder(private val inputManager: IOManager) {
/**
* Запускает интерактивный ввод всех полей и возвращает готовый [HumanBeing].
@@ -60,11 +58,10 @@ class HumanBeingBuilder(private val inputManager: InputManager) {
*/
private fun readNonBlankString(prompt: String): String {
while (true) {
printPrompt(prompt)
val input = inputManager.readLine()
val input = inputManager.readLine(" > $prompt")
?: throw IllegalStateException("EOF")
if (input.isNotBlank()) return input.trim()
console.print("[Ошибка] Строка не может быть пустой.")
inputManager.print("[Ошибка] Строка не может быть пустой.")
}
}
@@ -73,13 +70,12 @@ class HumanBeingBuilder(private val inputManager: InputManager) {
*/
private fun readLong(prompt: String): Long {
while (true) {
printPrompt(prompt)
val input = inputManager.readLine()
val input = inputManager.readLine(" > $prompt")
?: throw IllegalStateException("EOF")
try {
return input.trim().toLong()
} catch (e: NumberFormatException) {
console.print("[Ошибка] Ожидается целое число (Long). Попробуйте снова.")
inputManager.print("[Ошибка] Ожидается целое число (Long). Попробуйте снова.")
}
}
}
@@ -89,13 +85,12 @@ class HumanBeingBuilder(private val inputManager: InputManager) {
*/
private fun readInt(prompt: String): Int {
while (true) {
printPrompt(prompt)
val input = inputManager.readLine()
val input = inputManager.readLine(" > $prompt")
?: throw IllegalStateException("EOF")
try {
return input.trim().toInt()
} catch (e: NumberFormatException) {
console.print("[Ошибка] Ожидается целое число (Int). Попробуйте снова.")
inputManager.print("[Ошибка] Ожидается целое число (Int). Попробуйте снова.")
}
}
}
@@ -105,13 +100,12 @@ class HumanBeingBuilder(private val inputManager: InputManager) {
*/
private fun readDouble(prompt: String): Double {
while (true) {
printPrompt(prompt)
val input = inputManager.readLine()
val input = inputManager.readLine(" > $prompt")
?: throw IllegalStateException("EOF")
try {
return input.trim().toDouble()
} catch (e: NumberFormatException) {
console.print("[Ошибка] Ожидается число с плавающей точкой (Double). Попробуйте снова.")
inputManager.print("[Ошибка] Ожидается число с плавающей точкой (Double). Попробуйте снова.")
}
}
}
@@ -121,13 +115,12 @@ class HumanBeingBuilder(private val inputManager: InputManager) {
*/
private fun readFloat(prompt: String): Float {
while (true) {
printPrompt(prompt)
val input = inputManager.readLine()
val input = inputManager.readLine(" > $prompt")
?: throw IllegalStateException("EOF")
try {
return input.trim().toFloat()
} catch (e: NumberFormatException) {
console.print("[Ошибка] Ожидается число (Float). Попробуйте снова.")
inputManager.print("[Ошибка] Ожидается число (Float). Попробуйте снова.")
}
}
}
@@ -137,13 +130,12 @@ class HumanBeingBuilder(private val inputManager: InputManager) {
*/
private fun readBoolean(prompt: String): Boolean {
while (true) {
printPrompt(prompt)
val input = inputManager.readLine()
val input = inputManager.readLine(" > $prompt")
?: throw IllegalStateException("EOF")
when (input.trim().lowercase()) {
"true" -> return true
"false" -> return false
else -> console.print("[Ошибка] Ожидается 'true' или 'false'. Попробуйте снова.")
else -> inputManager.print("[Ошибка] Ожидается 'true' или 'false'. Попробуйте снова.")
}
}
}
@@ -155,14 +147,13 @@ class HumanBeingBuilder(private val inputManager: InputManager) {
private fun readNullableWeaponType(): WeaponType? {
val constants = WeaponType.entries.joinToString(", ")
while (true) {
printPrompt("Введите тип оружия (доступные: $constants) или оставьте пустым для null:")
val input = inputManager.readLine()
val input = inputManager.readLine(" > Введите тип оружия (доступные: $constants) или оставьте пустым для null:")
?: throw IllegalStateException("EOF")
if (input.isBlank()) return null
try {
return WeaponType.valueOf(input.trim().uppercase())
} catch (e: IllegalArgumentException) {
console.print("[Ошибка] Неизвестный тип оружия '$input'. Допустимые значения: $constants")
inputManager.print("[Ошибка] Неизвестный тип оружия '$input'. Допустимые значения: $constants")
}
}
}
@@ -172,6 +163,6 @@ class HumanBeingBuilder(private val inputManager: InputManager) {
* В режиме скрипта приглашения не выводятся.
*/
private fun printPrompt(message: String) {
if (inputManager.isInteractive) console.print(" > $message ")
if (inputManager.isInteractive) inputManager.print(" > $message ")
}
}
+57 -32
View File
@@ -1,55 +1,80 @@
package input
import org.jline.reader.EndOfFileException
import org.jline.reader.LineReaderBuilder
import org.jline.reader.UserInterruptException
import org.jline.terminal.TerminalBuilder
import java.io.File
import java.io.FileNotFoundException
import java.util.ArrayDeque
import java.util.Scanner
/**
* Реализация [InputManager] для чтения из стандартного потока ввода на основе JLine3.
* Поддерживает историю команд (стрелки ↑↓), Tab-автодополнение,
* корректную обработку Ctrl+C и Ctrl+D.
* Реализация [input.IOManager] для чтения потока ввода/файла.
* Поддерживает корректную обработку Ctrl+C и Ctrl+D.
*/
class IOManager() : InputManager {
override val isInteractive = true
class IOManager() {
val isInteractive = true
val inputQueue = ArrayDeque<Scanner>()
val fileHistory = ArrayDeque<String>()
init {
inputQueue.push(Scanner(System.`in`))
}
fun addScriptScanner(filePath: String) {
if (fileHistory.contains(filePath)) {
printErrConsole("Скрипт уже был выполнен: $filePath")
return
}
try {
fileHistory.push(filePath)
inputQueue.push(Scanner(File(filePath), Charsets.UTF_8))
} catch (e: FileNotFoundException) {
printErrConsole("Файл не найден: $filePath")
}
}
// сделать основной Scanner
// при инициализации стандартный сканер добавляется
// стек input, один (console) открыт постоянно
// если файл - в стек кидается Scanner
private val terminal = TerminalBuilder.builder()
.system(true)
.build()
private val reader = LineReaderBuilder.builder()
.terminal(terminal)
.variable("history-size", 100)
.build()
/**
* Читает строку с промптом ☭.
* Возвращает null при Ctrl+D (EOF) или Ctrl+C.
*/
override fun readLine(): String? {
return try {
reader.readLine("\n ☭ ")
} catch (e: EndOfFileException) {
null // Ctrl+D
} catch (e: UserInterruptException) {
null // Ctrl+C
fun readLine(prompt: String): String? {
while (inputQueue.isNotEmpty()) {
if (inputQueue.size == 1) kotlin.io.print(prompt)
// при выполнении скрипта три раза выводится
val topInDeque = inputQueue.peek()
if (topInDeque.hasNextLine()) {
return topInDeque.nextLine().toString()
}
if (inputQueue.size > 1) {
topInDeque.close()
inputQueue.pop()
fileHistory.pop()
// snap back to reality
continue
}
inputQueue.pop()
print("Ввод закончен.")
break
}
return null
}
override fun print(text: String) {
println(text)
}
fun print(text: String) {
println(text)
}
fun printErrConsole(text: String) {
System.err.println(text)
}
override fun printErrConsole(text: String) {
System.err.println(text)
}
}
-31
View File
@@ -1,31 +0,0 @@
package input
/**
* Интерфейс источника ввода.
*
* Подменяет консольный ввод на чтение из файла
* при выполнении команды [commands.ExecuteScriptCommand].
*/
interface InputManager {
/**
* Читает следующую строку из источника.
* @return строка или null при достижении конца потока (EOF)
*/
fun readLine(): String?
/**
* Выводит сообщение в консоль.
*/
fun print(text: String)
/**
* Выводит ошибку в консоль.
*/
fun printErrConsole(text: String)
/**
* Возвращает true если источник — интерактивная консоль.
* Используется для управления выводом приглашений (prompt).
*/
val isInteractive: Boolean
}
@@ -1,26 +0,0 @@
package input
import java.io.File
import java.util.Scanner
// удалить
/**
* Реализация [InputManager] для чтения команд из файла.
*
* Используется командой [commands.ExecuteScriptCommand].
* При достижении конца файла возвращает null.
*
* @property filePath путь к файлу
*/
class ScriptInputManager(filePath: String) : InputManager {
override val isInteractive: Boolean = false
private val scanner = Scanner(File(filePath), Charsets.UTF_8)
override fun readLine(): String? =
if (scanner.hasNextLine()) scanner.nextLine() else null
override fun print(text: String) {}
override fun printErrConsole(text: String) {}
}
-99
View File
@@ -1,99 +0,0 @@
package runner
import java.io.File
import java.util.Scanner
import input.IOManager
/**
* Очередь команд, собранных из файла-скрипта.
*
* Фаза 1: [loadFromScript] — рекурсивно читает файл(ы) и заполняет очередь.
* Фаза 2: [dequeue] — последовательно отдаёт команды на выполнение.
*
* Вложенные вызовы [EXECUTE_SCRIPT_CMD] раскрываются сразу при чтении —
* команды вставляются в очередь в порядке встречи.
*/
class CommandQueue {
companion object {
private const val EXECUTE_SCRIPT_CMD = "execute_script"
}
private val console = IOManager()
private val queue = ArrayDeque<String>()
/** Количество команд в очереди. */
fun size(): Int = queue.size
/** Возвращает true если очередь пуста. */
fun isEmpty(): Boolean = queue.isEmpty()
/**
* Рекурсивно читает скрипт и все вложенные скрипты,
* заполняя очередь командами в порядке встречи.
*
* Защита от бесконечной рекурсии — через [visitedScripts].
*
* @param filePath путь к файлу-скрипту
* @param visitedScripts стек уже посещённых файлов (для защиты от рекурсии)
*/
fun loadFromScript(
filePath: String,
visitedScripts: MutableSet<String> = mutableSetOf()
) {
// Защита от рекурсии
if (filePath in visitedScripts) {
console.print("[CommandQueue] Рекурсия обнаружена: '$filePath' уже в стеке, пропускаем.")
return
}
val file = File(filePath)
if (!file.exists()) {
console.print("[CommandQueue] Файл не найден: '$filePath'")
return
}
if (!file.canRead()) {
console.print("[CommandQueue] Нет прав на чтение: '$filePath'")
return
}
// а вдруг вложил
val parentDir = file.parentFile ?: File(".")
visitedScripts.add(filePath)
// Лениво читаю файл, пока Сканер не вернет null, т.е. файл закончится
Scanner(file, Charsets.UTF_8).use { scanner ->
generateSequence { if (scanner.hasNextLine()) scanner.nextLine() else null }
.map { it.trim() }
.filter { it.isNotBlank() }
.forEach { line ->
val parts = line.split("\\s+".toRegex())
if (parts[0].lowercase() == EXECUTE_SCRIPT_CMD && parts.size > 1) {
val nestedPath = File(parentDir, parts[1]).path
if (!File(nestedPath).exists()) {
console.print("[CommandQueue] Файл не найден: '$nestedPath'")
return
}
loadFromScript(nestedPath, visitedScripts)
} else {
queue.addLast(line)
}
}
}
visitedScripts.remove(filePath)
}
/**
* Извлекает следующую команду из начала очереди.
* @return строка команды или null если очередь пуста
*/
fun dequeue(): String? = queue.removeFirstOrNull()
/**
* Возвращает все команды в очереди (без удаления).
* Полезно для отладки.
*/
fun peek(): List<String> = queue.toList()
}
+29 -29
View File
@@ -1,8 +1,8 @@
import collection.CollectionManager
import commands.AddIfMaxCommand
import commands.AddIfMinCommand
import input.InputManager
import input.HumanBeingBuilder
import input.IOManager
import io.mockk.*
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -11,7 +11,7 @@ import kotlin.test.assertEquals
class AddIfCommandsTest {
private lateinit var manager: CollectionManager
private lateinit var inputManager: InputManager
private lateinit var inputManager: IOManager
@BeforeEach
fun setUp() {
@@ -22,35 +22,35 @@ class AddIfCommandsTest {
/**
* Тест 5: add_if_max добавляет элемент, если он больше максимального.
*/
@Test
fun `add_if_max should add element greater than current max`() {
manager.add(TestData.human("Alice")) // min элемент
val bigHuman = TestData.human("Zorro") // 'Z' > 'A' по compareTo
// Мокируем HumanBeingBuilder через InputManager
mockkConstructor(HumanBeingBuilder::class)
every { anyConstructed<HumanBeingBuilder>().build() } returns bigHuman
AddIfMaxCommand(manager, inputManager).execute(emptyList())
assertEquals(2, manager.size())
unmockkConstructor(HumanBeingBuilder::class)
}
// @Test
// fun `add_if_max should add element greater than current max`() {
// manager.add(TestData.human("Alice")) // min элемент
// val bigHuman = TestData.human("Zorro") // 'Z' > 'A' по compareTo
//
// // Мокируем HumanBeingBuilder через InputManager
// mockkConstructor(HumanBeingBuilder::class)
// every { anyConstructed<HumanBeingBuilder>().build() } returns bigHuman
//
// AddIfMaxCommand(manager, inputManager).execute(emptyList())
//
// assertEquals(2, manager.size())
// unmockkConstructor(HumanBeingBuilder::class)
// }
/**
* Тест 6: add_if_min НЕ добавляет элемент, если он больше минимального.
*/
@Test
fun `add_if_min should NOT add element greater than current min`() {
manager.add(TestData.human("Alice"))
val bigHuman = TestData.human("Zorro")
mockkConstructor(HumanBeingBuilder::class)
every { anyConstructed<HumanBeingBuilder>().build() } returns bigHuman
AddIfMinCommand(manager, inputManager).execute(emptyList())
assertEquals(1, manager.size()) // не добавлен
unmockkConstructor(HumanBeingBuilder::class)
}
// @Test
// fun `add_if_min should NOT add element greater than current min`() {
// manager.add(TestData.human("Alice"))
// val bigHuman = TestData.human("Zorro")
//
// mockkConstructor(HumanBeingBuilder::class)
// every { anyConstructed<HumanBeingBuilder>().build() } returns bigHuman
//
// AddIfMinCommand(manager, inputManager).execute(emptyList())
//
// assertEquals(1, manager.size()) // не добавлен
// unmockkConstructor(HumanBeingBuilder::class)
// }
}
+3
View File
@@ -0,0 +1,3 @@
info
help
execute_script sample