Add test for calculateCapacity

Issue: SPR-17558
Closes gh-2054
This commit is contained in:
Arjen Poutsma 2018-12-20 21:33:56 +01:00 committed by Brian Clozel
parent a00be62b04
commit 5a8b8b11e4
2 changed files with 22 additions and 1 deletions

View File

@ -99,7 +99,7 @@ public final class CharSequenceEncoder extends AbstractEncoder<CharSequence> {
});
}
private int calculateCapacity(CharSequence sequence, Charset charset) {
int calculateCapacity(CharSequence sequence, Charset charset) {
float maxBytesPerChar = this.charsetToMaxBytesPerChar
.computeIfAbsent(charset, cs -> cs.newEncoder().maxBytesPerChar());
float maxBytesForSequence = sequence.length() * maxBytesPerChar;

View File

@ -16,11 +16,19 @@
package org.springframework.core.codec;
import java.nio.charset.Charset;
import java.util.stream.Stream;
import org.junit.Test;
import reactor.core.publisher.Flux;
import org.springframework.core.ResolvableType;
import org.springframework.util.MimeTypeUtils;
import static java.nio.charset.StandardCharsets.ISO_8859_1;
import static java.nio.charset.StandardCharsets.US_ASCII;
import static java.nio.charset.StandardCharsets.UTF_16;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.junit.Assert.*;
/**
@ -65,4 +73,17 @@ public class CharSequenceEncoderTests
.verifyComplete());
}
@Test
public void calculateCapacity() {
String sequence = "Hello World!";
Stream.of(UTF_8, UTF_16, ISO_8859_1, US_ASCII, Charset.forName("BIG5"))
.forEach(charset -> {
int capacity = this.encoder.calculateCapacity(sequence, charset);
int length = sequence.length();
assertTrue(String.format("%s has capacity %d; length %d", charset, capacity, length),
capacity >= length);
});
}
}