Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ object KuringNotificationManager {
.setSmallIcon(smallIconRes)
.setContentTitle(title)
.setContentText(body)
.setStyle(NotificationCompat.BigTextStyle().bigText(body))
.setSound(defaultSound)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.ku_stacks.ku_ring.util

import android.app.Notification
import android.app.NotificationManager
import android.content.Context
import android.content.Intent
import androidx.test.core.app.ApplicationProvider
import org.hamcrest.CoreMatchers.`is`
import org.hamcrest.MatcherAssert.assertThat
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.Shadows.shadowOf

@RunWith(RobolectricTestRunner::class)
class KuringNotificationManagerTest {
Comment on lines +10 to +16

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# JUnit4/JUnit5 사용 현황 및 설정 점검 (읽기 전용)
set -euo pipefail

echo "== 테스트 코드에서 JUnit4/JUnit5 및 Robolectric 사용 패턴 확인 =="
rg -n --type=kt 'import org\.junit\.Test|import org\.junit\.runner\.RunWith|`@RunWith`\(|import org\.junit\.jupiter\.api\.Test|RobolectricTestRunner|RobolectricExtension'

echo
echo "== Gradle 설정에서 JUnit/Jupiter/Robolectric 의존성 확인 =="
fd -i 'build.gradle*' | xargs rg -n 'junit|jupiter|robolectric'

Repository: ku-ring/KU-Ring-Android

Length of output: 164


🏁 Script executed:

#!/bin/bash
# Check the actual content of the test file in question
echo "== Content of KuringNotificationManagerTest.kt =="
cat -n core/util/src/test/java/com/ku_stacks/ku_ring/util/KuringNotificationManagerTest.kt

echo
echo "== JUnit4/JUnit5 imports across test files =="
rg -n 'import org\.junit\.' core/util/src/test/java --max-count=20

echo
echo "== Check for `@RunWith` and RobolectricTestRunner usage =="
rg -n '`@RunWith`|RobolectricTestRunner|RobolectricExtension' core/util/src/test/java --max-count=20

echo
echo "== Look for JUnit5 imports (jupiter) =="
rg -n 'import org\.junit\.jupiter' core/util/src/test/java

Repository: ku-ring/KU-Ring-Android

Length of output: 2776


🏁 Script executed:

#!/bin/bash
# Check build configuration for testing framework dependencies
echo "== Gradle build files in core/util =="
find core/util -name 'build.gradle*' -type f

echo
echo "== JUnit and testing framework dependencies in build.gradle files =="
find . -name 'build.gradle*' -type f -exec grep -l "junit\|jupiter\|robolectric" {} \;

echo
echo "== Root build.gradle content (testing dependencies) =="
cat build.gradle.kts 2>/dev/null | grep -A 50 "dependencies\|testImplementation" | head -100 || cat build.gradle 2>/dev/null | grep -A 50 "dependencies\|testImplementation" | head -100 || echo "No build.gradle found or readable"

Repository: ku-ring/KU-Ring-Android

Length of output: 1499


🏁 Script executed:

#!/bin/bash
# Check core/util build configuration
echo "== core/util/build.gradle.kts content =="
cat core/util/build.gradle.kts

echo
echo "== Gradle version catalog (libs.versions.toml) =="
find . -name 'libs.versions.toml' -o -name 'versions.gradle.kts' | xargs cat 2>/dev/null | grep -A 5 -B 5 'junit\|robolectric' || echo "Not found or pattern not matched"

Repository: ku-ring/KU-Ring-Android

Length of output: 4091


🏁 Script executed:

#!/bin/bash
# Check for gradle/libs.versions.toml
echo "== Looking for version catalog files =="
find . -type f \( -name '*.versions.toml' -o -name 'versions.gradle*' \) 2>/dev/null

echo
echo "== Check gradle directory structure =="
ls -la gradle/ 2>/dev/null || ls -la gradle.properties 2>/dev/null || echo "gradle directory not accessible"

Repository: ku-ring/KU-Ring-Android

Length of output: 635


JUnit4 API 대신 JUnit5로 마이그레이션하세요.

현재 코드는 JUnit4의 org.junit.Test, @RunWith 등을 사용하고 있으나, 코딩 규약 **/*Test.kt에 따라 JUnit5 기반으로 통일해야 합니다.

프로젝트의 gradle/libs.versions.toml에 JUnit5(6.0.3)와 android-junit5 플러그인이 정의되어 있으므로, 다음과 같이 마이그레이션합니다:

  • import org.junit.Testimport org.junit.jupiter.api.Test
  • @RunWith(RobolectricTestRunner::class)@ExtendWith(RobolectricExtension::class) 또는 플러그인 활성화 후 직접 사용

참고: 현재 프로젝트의 모든 테스트 파일이 JUnit4를 사용 중이므로, 이 파일의 수정은 프로젝트 전반적인 JUnit5 마이그레이션의 일부입니다. 빌드 설정의 android-junit5 플러그인 활성화와 unit-test 의존성 번들 수정도 함께 검토하세요.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@core/util/src/test/java/com/ku_stacks/ku_ring/util/KuringNotificationManagerTest.kt`
around lines 10 - 16, KuringNotificationManagerTest uses JUnit4; migrate it to
JUnit5 by replacing the import org.junit.Test with org.junit.jupiter.api.Test,
swap the class-level `@RunWith`(RobolectricTestRunner::class) for
`@ExtendWith`(RobolectricExtension::class) and add the import
org.robolectric.junit5.RobolectricExtension, and keep using shadowOf(...) as
needed; also ensure the android-junit5 plugin is enabled and the JUnit5 (6.0.3)
test dependency bundle is configured so the test class
(KuringNotificationManagerTest) compiles and runs under JUnit5.


@Test
fun `showCustomNotification sets body as big text`() {
val context = ApplicationProvider.getApplicationContext<Context>()
val body = "오늘 19:30 녹색지대 공연 시작\n\nHearts2Hearts\nJANNABI\nZICO"

KuringNotificationManager.showCustomNotification(
context = context,
intent = Intent(),
title = "녹색지대 DAY1",
body = body,
largeIconRes = 0,
smallIconRes = 0,
)

val notificationManager =
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val notification = shadowOf(notificationManager).allNotifications.single()

assertThat(
notification.extras.getCharSequence(Notification.EXTRA_BIG_TEXT).toString(),
`is`(body),
)
}
}