hate that
This commit is contained in:
+3
-3
@@ -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
@@ -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} Загрузка коллекции из файла
|
||||
|
||||
@@ -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} Возвращена коллекция
|
||||
@@ -0,0 +1 @@
|
||||
2026-04-03 21:16:19.329 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
|
||||
@@ -0,0 +1 @@
|
||||
2026-04-03 21:41:41.050 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_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} Загрузка коллекции из файла
|
||||
@@ -12,6 +12,8 @@ import runner.CommandInvoker
|
||||
*
|
||||
*/
|
||||
fun main(args: Array<String>) {
|
||||
System.setProperty("slf4j.internal.verbosity", "WARN")
|
||||
|
||||
// Проверяем аргументы
|
||||
var filePath = "data.csv"
|
||||
|
||||
|
||||
@@ -12,6 +12,6 @@ class ExitCommand(
|
||||
override val description = "завершить программу"
|
||||
|
||||
override fun execute(args: List<String>) {
|
||||
inputManager.print("До свидания!")
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,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>
|
||||
|
||||
@@ -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()) // не добавлен
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user