Skip to content

Commit fc3e5bb

Browse files
committed
Adding one more test
1 parent c95b877 commit fc3e5bb

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package pl.wavesoftware.lang;
2+
3+
import org.junit.Test;
4+
5+
import java.math.BigInteger;
6+
import java.nio.charset.StandardCharsets;
7+
import java.security.MessageDigest;
8+
import java.security.NoSuchAlgorithmException;
9+
10+
import static org.assertj.core.api.Assertions.assertThat;
11+
12+
13+
/**
14+
* @author <a href="[email protected]">Krzysztof Suszyński</a>
15+
* @since 2018-05-06
16+
*/
17+
public class TriConsumerTest {
18+
19+
private static final int HEX_RADIX = 16;
20+
21+
@Test
22+
public void testAndThen() throws NoSuchAlgorithmException {
23+
// given
24+
StringBuilder sb = new StringBuilder();
25+
TriConsumer<String, Boolean, Long> consumer = (string, aBoolean, aLong) -> {
26+
sb.append("string => ").append(string).append(", ");
27+
sb.append("bool => ").append(aBoolean).append(", ");
28+
sb.append("long => ").append(aLong);
29+
};
30+
MessageDigest md = MessageDigest.getInstance("SHA-256");
31+
32+
// when
33+
consumer
34+
.andThen((s, aBool, aLong) -> {
35+
md.update(s.getBytes(StandardCharsets.UTF_8));
36+
md.update(aBool.toString().getBytes(StandardCharsets.UTF_8));
37+
md.update(aLong.toString().getBytes(StandardCharsets.UTF_8));
38+
sb.append(", digest => ")
39+
.append(
40+
new BigInteger(1, md.digest()).toString(HEX_RADIX)
41+
);
42+
})
43+
.accept("Alice has a cat", true, 0L);
44+
45+
// then
46+
assertThat(sb)
47+
.isEqualToIgnoringNewLines(
48+
"string => Alice has a cat, bool => true, long => 0, digest => " +
49+
"59283a245f0ef51936819eb4e80fb2f9528d4ddbd022badf45c56f1e8073e8aa"
50+
);
51+
}
52+
}

0 commit comments

Comments
 (0)