Add test for calculateCapacity
Issue: SPR-17558 Closes gh-2054
This commit is contained in:
parent
a00be62b04
commit
5a8b8b11e4
|
|
@ -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
|
float maxBytesPerChar = this.charsetToMaxBytesPerChar
|
||||||
.computeIfAbsent(charset, cs -> cs.newEncoder().maxBytesPerChar());
|
.computeIfAbsent(charset, cs -> cs.newEncoder().maxBytesPerChar());
|
||||||
float maxBytesForSequence = sequence.length() * maxBytesPerChar;
|
float maxBytesForSequence = sequence.length() * maxBytesPerChar;
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,19 @@
|
||||||
|
|
||||||
package org.springframework.core.codec;
|
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 reactor.core.publisher.Flux;
|
||||||
|
|
||||||
import org.springframework.core.ResolvableType;
|
import org.springframework.core.ResolvableType;
|
||||||
import org.springframework.util.MimeTypeUtils;
|
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.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -65,4 +73,17 @@ public class CharSequenceEncoderTests
|
||||||
.verifyComplete());
|
.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);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue