hate that

This commit is contained in:
2026-04-03 21:57:09 +03:00
parent 58b7256a04
commit cee5f7cbdd
11 changed files with 47 additions and 39 deletions
+3 -3
View File
@@ -16,7 +16,7 @@ repositories {
dependencies {
implementation(kotlin("stdlib"))
implementation("io.github.microutils:kotlin-logging-jvm:3.0.5")
implementation("ch.qos.logback:logback-classic:1.5.7")
implementation("ch.qos.logback:logback-classic:1.5.13")
implementation("org.jline:jline:3.27.1")
testImplementation(kotlin("test"))
@@ -28,7 +28,8 @@ dependencies {
application {
mainClass.set("MainKt")
applicationDefaultJvmArgs = listOf(
"--enable-native-access=ALL-UNNAMED"
"--enable-native-access=ALL-UNNAMED",
"-Dslf4j.internal.verbosity=WARN"
)
}
@@ -53,7 +54,6 @@ tasks.named("build") {
dependsOn("shadowJar")
}
// да, я ленивый
tasks.withType<JavaExec> {
jvmArgs("--enable-native-access=ALL-UNNAMED")
}
+1 -3
View File
@@ -1,3 +1 @@
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} Возвращена коллекция
2026-04-03 21:46:09.332 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
+3
View File
@@ -0,0 +1,3 @@
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} Возвращена коллекция
+1
View File
@@ -0,0 +1 @@
2026-04-03 21:16:19.329 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
+1
View File
@@ -0,0 +1 @@
2026-04-03 21:41:41.050 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
+2
View File
@@ -0,0 +1,2 @@
2026-04-03 21:45:16.884 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
2026-04-03 21:45:32.665 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
+2
View File
@@ -12,6 +12,8 @@ import runner.CommandInvoker
*
*/
fun main(args: Array<String>) {
System.setProperty("slf4j.internal.verbosity", "WARN")
// Проверяем аргументы
var filePath = "data.csv"
+1 -1
View File
@@ -12,6 +12,6 @@ class ExitCommand(
override val description = "завершить программу"
override fun execute(args: List<String>) {
inputManager.print("До свидания!")
null
}
}
-2
View File
@@ -40,12 +40,10 @@ class IOManager() {
/**
* Читает строку с промптом ☭.
* Возвращает null при Ctrl+D (EOF) или 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()) {
+1 -1
View File
@@ -1,4 +1,4 @@
<configuration>
<configuration debug="false" statusListenerClass="ch.qos.logback.core.status.NopStatusListener">
<appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/all.log</file>
+32 -29
View File
@@ -5,52 +5,55 @@ import input.HumanBeingBuilder
import input.IOManager
import io.mockk.*
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Test
import kotlin.test.assertEquals
class AddIfCommandsTest {
private lateinit var manager: CollectionManager
private lateinit var inputManager: IOManager
private val inputManager = mockk<IOManager>(relaxed = true)
@BeforeEach
fun setUp() {
manager = CollectionManager()
inputManager = mockk()
}
@AfterEach
fun tearDown() {
unmockkConstructor(HumanBeingBuilder::class)
}
/**
* Тест 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())
}
/**
* Тест 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()) // не добавлен
}
}