Skip to content

Commit 621cc0b

Browse files
committed
JUnit: Create demo for enum conversion
1 parent d6d0066 commit 621cc0b

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package io.mincong.junit5;
2+
3+
public enum FilePermission {
4+
X(1),
5+
W(2),
6+
WX(3),
7+
R(4),
8+
RX(5),
9+
RW(6),
10+
RWX(7);
11+
12+
private final boolean readable;
13+
private final boolean writable;
14+
private final boolean executable;
15+
16+
FilePermission(int v) {
17+
this.executable = (v & 0b001) == 1;
18+
this.writable = (v & 0b010) == 2;
19+
this.readable = (v & 0b100) == 4;
20+
}
21+
22+
boolean isReadable() {
23+
return readable;
24+
}
25+
26+
boolean isWritable() {
27+
return writable;
28+
}
29+
30+
boolean isExecutable() {
31+
return executable;
32+
}
33+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package io.mincong.junit5;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import org.junit.jupiter.params.ParameterizedTest;
6+
import org.junit.jupiter.params.provider.CsvSource;
7+
8+
class FilePermissionTest {
9+
@ParameterizedTest
10+
@CsvSource({
11+
"R, false",
12+
"W, false",
13+
"RW, false",
14+
"X, true",
15+
"RX, true",
16+
"WX, true",
17+
"RWX, true",
18+
})
19+
void isExecutable(FilePermission perm, boolean isExecutable) {
20+
assertThat(perm.isExecutable()).isEqualTo(isExecutable);
21+
}
22+
23+
@ParameterizedTest
24+
@CsvSource({
25+
"W, false",
26+
"X, false",
27+
"WX, false",
28+
"R, true",
29+
"RW, true",
30+
"RX, true",
31+
"RWX, true",
32+
})
33+
void isReadable(FilePermission perm, boolean isReadable) {
34+
assertThat(perm.isReadable()).isEqualTo(isReadable);
35+
}
36+
37+
@ParameterizedTest
38+
@CsvSource({
39+
"X, false",
40+
"R, false",
41+
"RX, false",
42+
"W, true",
43+
"WX, true",
44+
"RW, true",
45+
"RWX, true",
46+
})
47+
void isWritable(FilePermission perm, boolean isWritable) {
48+
assertThat(perm.isWritable()).isEqualTo(isWritable);
49+
}
50+
}

0 commit comments

Comments
 (0)