hate that
This commit is contained in:
+3
-3
@@ -16,7 +16,7 @@ repositories {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation(kotlin("stdlib"))
|
implementation(kotlin("stdlib"))
|
||||||
implementation("io.github.microutils:kotlin-logging-jvm:3.0.5")
|
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")
|
implementation("org.jline:jline:3.27.1")
|
||||||
|
|
||||||
testImplementation(kotlin("test"))
|
testImplementation(kotlin("test"))
|
||||||
@@ -28,7 +28,8 @@ dependencies {
|
|||||||
application {
|
application {
|
||||||
mainClass.set("MainKt")
|
mainClass.set("MainKt")
|
||||||
applicationDefaultJvmArgs = listOf(
|
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")
|
dependsOn("shadowJar")
|
||||||
}
|
}
|
||||||
|
|
||||||
// да, я ленивый
|
|
||||||
tasks.withType<JavaExec> {
|
tasks.withType<JavaExec> {
|
||||||
jvmArgs("--enable-native-access=ALL-UNNAMED")
|
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-03 21:46:09.332 [main] INFO collection.CollectionManager - [COMMANDS] {LOAD_FROM_FILE} Загрузка коллекции из файла
|
||||||
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,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>) {
|
fun main(args: Array<String>) {
|
||||||
|
System.setProperty("slf4j.internal.verbosity", "WARN")
|
||||||
|
|
||||||
// Проверяем аргументы
|
// Проверяем аргументы
|
||||||
var filePath = "data.csv"
|
var filePath = "data.csv"
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,6 @@ class ExitCommand(
|
|||||||
override val description = "завершить программу"
|
override val description = "завершить программу"
|
||||||
|
|
||||||
override fun execute(args: List<String>) {
|
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? {
|
fun readLine(prompt: String): String? {
|
||||||
while (inputQueue.isNotEmpty()) {
|
while (inputQueue.isNotEmpty()) {
|
||||||
if (inputQueue.size == 1) kotlin.io.print(prompt)
|
if (inputQueue.size == 1) kotlin.io.print(prompt)
|
||||||
// при выполнении скрипта три раза выводится
|
|
||||||
val topInDeque = inputQueue.peek()
|
val topInDeque = inputQueue.peek()
|
||||||
if (topInDeque.hasNextLine()) {
|
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">
|
<appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
<file>logs/all.log</file>
|
<file>logs/all.log</file>
|
||||||
|
|||||||
@@ -5,52 +5,55 @@ import input.HumanBeingBuilder
|
|||||||
import input.IOManager
|
import input.IOManager
|
||||||
import io.mockk.*
|
import io.mockk.*
|
||||||
import org.junit.jupiter.api.BeforeEach
|
import org.junit.jupiter.api.BeforeEach
|
||||||
|
import org.junit.jupiter.api.AfterEach
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
class AddIfCommandsTest {
|
class AddIfCommandsTest {
|
||||||
|
|
||||||
private lateinit var manager: CollectionManager
|
private lateinit var manager: CollectionManager
|
||||||
private lateinit var inputManager: IOManager
|
private val inputManager = mockk<IOManager>(relaxed = true)
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
manager = CollectionManager()
|
manager = CollectionManager()
|
||||||
inputManager = mockk()
|
}
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
fun tearDown() {
|
||||||
|
unmockkConstructor(HumanBeingBuilder::class)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Тест 5: add_if_max добавляет элемент, если он больше максимального.
|
* Тест 5: add_if_max добавляет элемент, если он больше максимального.
|
||||||
*/
|
*/
|
||||||
// @Test
|
@Test
|
||||||
// fun `add_if_max should add element greater than current max`() {
|
fun `add_if_max should add element greater than current max`() {
|
||||||
// manager.add(TestData.human("Alice")) // min элемент
|
manager.add(TestData.human("Alice")) // min элемент
|
||||||
// val bigHuman = TestData.human("Zorro") // 'Z' > 'A' по compareTo
|
val bigHuman = TestData.human("Zorro") // 'Z' > 'A' по compareTo
|
||||||
//
|
|
||||||
// // Мокируем HumanBeingBuilder через InputManager
|
// Мокируем HumanBeingBuilder через InputManager
|
||||||
// mockkConstructor(HumanBeingBuilder::class)
|
mockkConstructor(HumanBeingBuilder::class)
|
||||||
// every { anyConstructed<HumanBeingBuilder>().build() } returns bigHuman
|
every { anyConstructed<HumanBeingBuilder>().build() } returns bigHuman
|
||||||
//
|
|
||||||
// AddIfMaxCommand(manager, inputManager).execute(emptyList())
|
AddIfMaxCommand(manager, inputManager).execute(emptyList())
|
||||||
//
|
|
||||||
// assertEquals(2, manager.size())
|
assertEquals(2, manager.size())
|
||||||
// unmockkConstructor(HumanBeingBuilder::class)
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Тест 6: add_if_min НЕ добавляет элемент, если он больше минимального.
|
* Тест 6: add_if_min НЕ добавляет элемент, если он больше минимального.
|
||||||
*/
|
*/
|
||||||
// @Test
|
@Test
|
||||||
// fun `add_if_min should NOT add element greater than current min`() {
|
fun `add_if_min should NOT add element greater than current min`() {
|
||||||
// manager.add(TestData.human("Alice"))
|
manager.add(TestData.human("Alice"))
|
||||||
// val bigHuman = TestData.human("Zorro")
|
val bigHuman = TestData.human("Zorro")
|
||||||
//
|
|
||||||
// mockkConstructor(HumanBeingBuilder::class)
|
mockkConstructor(HumanBeingBuilder::class)
|
||||||
// every { anyConstructed<HumanBeingBuilder>().build() } returns bigHuman
|
every { anyConstructed<HumanBeingBuilder>().build() } returns bigHuman
|
||||||
//
|
|
||||||
// AddIfMinCommand(manager, inputManager).execute(emptyList())
|
AddIfMinCommand(manager, inputManager).execute(emptyList())
|
||||||
//
|
|
||||||
// assertEquals(1, manager.size()) // не добавлен
|
assertEquals(1, manager.size()) // не добавлен
|
||||||
// unmockkConstructor(HumanBeingBuilder::class)
|
}
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user