1+ package introprog
2+
3+ val tmpDir = " target/tmp"
4+
5+ class TestIO extends munit.FunSuite {
6+ test(" TestIO: createDirIfNotExist, saveString, appendString, loadLines, appendLines" ) {
7+ val existed = IO .createDirIfNotExist(tmpDir)
8+ assert(IO .isExisting(tmpDir), s " dir should exists: $tmpDir" )
9+ val s1 = " hello"
10+ val fn = s " $tmpDir/hello.txt "
11+ IO .saveString(s1, fileName = fn)
12+ val s2 = IO .loadString(fileName = fn)
13+ assertEquals(s1, s2, " saved string different from loaded" )
14+ IO .appendString(" !\n " , fileName = fn )
15+ val s3 = IO .loadString(fileName = fn)
16+ assertEquals(s3, s2 + " !\n " , " saved string is missing appended '!+newline'" )
17+ IO .appendLines(Seq (" line2" ),fileName = fn)
18+ val s4 = IO .loadLines(fileName = fn)
19+ assertEquals(s4, Vector (" hello!" , " line2" ), s " loadLines not as expected: $s4" )
20+ val s5 = IO .loadString(fileName = fn)
21+ assertEquals(s5, " hello!\n line2\n " , s " loadLines not as expected: $s5" )
22+ IO .appendLines(Seq (),fileName = fn) // nothing should be added, not even newline
23+ assertEquals(s5, IO .loadString(fileName = fn), s " loadLines not as expected: $s5" )
24+ }
25+ }
0 commit comments