Skip to content

Commit 436b5f1

Browse files
authored
[KTLN-789] Add Samples (#725)
* [KTLN-789] Add Samples * [KTLN-789] Add Samples * [KTLN-789] Add Samples
1 parent 241f7cd commit 436b5f1

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.baeldung.md5
2+
3+
import org.junit.jupiter.api.Assertions.assertEquals
4+
import org.junit.jupiter.api.Test
5+
import java.io.File
6+
import java.security.MessageDigest
7+
8+
class Md5UnitTest {
9+
@Test
10+
fun `Calling extension md5 should return a md5 hash`() {
11+
val stringToBeHashed = "Hello, Baeldung!"
12+
val expectedHash = "6469a4ea9e2753755f5120beb51587f8"
13+
val calculatedHash = stringToBeHashed.md5()
14+
15+
assertEquals(expectedHash, calculatedHash)
16+
}
17+
18+
@Test
19+
fun `Calling extension md5 on a file should return a md5 hash`() {
20+
val fileToBeHashed = File("src/test/resources/test_md5.txt")
21+
val expectedHash = "ef948f943cdba8514ed5aab7592a904d"
22+
val calculatedHash = fileToBeHashed.md5()
23+
24+
assertEquals(expectedHash, calculatedHash)
25+
}
26+
}
27+
28+
@OptIn(ExperimentalStdlibApi::class)
29+
fun String.md5(): String {
30+
val md = MessageDigest.getInstance("MD5")
31+
val digest = md.digest(this.toByteArray())
32+
return digest.toHexString()
33+
}
34+
35+
@OptIn(ExperimentalStdlibApi::class)
36+
fun File.md5(): String {
37+
val md = MessageDigest.getInstance("MD5")
38+
val digest = md.digest(this.readBytes())
39+
return digest.toHexString()
40+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Hello, Baeldung! I'm a file!

0 commit comments

Comments
 (0)