Skip to content

Commit d68bb4e

Browse files
committed
Simplify StreamConverterTests
1 parent 730ad44 commit d68bb4e

File tree

1 file changed

+23
-50
lines changed

1 file changed

+23
-50
lines changed

spring-core/src/test/java/org/springframework/core/convert/support/StreamConverterTests.java

Lines changed: 23 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2019 the original author or authors.
2+
* Copyright 2002-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -30,11 +30,14 @@
3030
import static org.assertj.core.api.Assertions.assertThat;
3131
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
3232
import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
33+
import static org.assertj.core.api.InstanceOfAssertFactories.list;
34+
import static org.assertj.core.api.InstanceOfAssertFactories.stream;
3335

3436
/**
3537
* Tests for {@link StreamConverter}.
3638
*
3739
* @author Stephane Nicoll
40+
* @author Sam Brannen
3841
* @since 4.2
3942
*/
4043
class StreamConverterTests {
@@ -56,74 +59,53 @@ void setup() {
5659
@Test
5760
void convertFromStreamToList() throws NoSuchFieldException {
5861
this.conversionService.addConverter(Number.class, String.class, new ObjectToStringConverter());
59-
Stream<Integer> stream = Arrays.asList(1, 2, 3).stream();
62+
Stream<Integer> stream = Stream.of(1, 2, 3);
6063
TypeDescriptor listOfStrings = new TypeDescriptor(Types.class.getField("listOfStrings"));
6164
Object result = this.conversionService.convert(stream, listOfStrings);
6265

63-
assertThat(result).as("Converted object must not be null").isNotNull();
64-
boolean condition = result instanceof List;
65-
assertThat(condition).as("Converted object must be a list").isTrue();
66-
@SuppressWarnings("unchecked")
67-
List<String> content = (List<String>) result;
68-
assertThat(content.get(0)).isEqualTo("1");
69-
assertThat(content.get(1)).isEqualTo("2");
70-
assertThat(content.get(2)).isEqualTo("3");
71-
assertThat(content.size()).as("Wrong number of elements").isEqualTo(3);
66+
assertThat(result).asInstanceOf(list(String.class)).containsExactly("1", "2", "3");
7267
}
7368

7469
@Test
7570
void convertFromStreamToArray() throws NoSuchFieldException {
7671
this.conversionService.addConverterFactory(new NumberToNumberConverterFactory());
77-
Stream<Integer> stream = Arrays.asList(1, 2, 3).stream();
72+
Stream<Integer> stream = Stream.of(1, 2, 3);
7873
TypeDescriptor arrayOfLongs = new TypeDescriptor(Types.class.getField("arrayOfLongs"));
7974
Object result = this.conversionService.convert(stream, arrayOfLongs);
8075

8176
assertThat(result).as("Converted object must not be null").isNotNull();
8277
assertThat(result.getClass().isArray()).as("Converted object must be an array").isTrue();
8378
Long[] content = (Long[]) result;
84-
assertThat(content[0]).isEqualTo(Long.valueOf(1L));
85-
assertThat(content[1]).isEqualTo(Long.valueOf(2L));
86-
assertThat(content[2]).isEqualTo(Long.valueOf(3L));
87-
assertThat(content.length).as("Wrong number of elements").isEqualTo(3);
79+
assertThat(content).containsExactly(1L, 2L, 3L);
8880
}
8981

9082
@Test
9183
void convertFromStreamToRawList() throws NoSuchFieldException {
92-
Stream<Integer> stream = Arrays.asList(1, 2, 3).stream();
84+
Stream<Integer> stream = Stream.of(1, 2, 3);
9385
TypeDescriptor listOfStrings = new TypeDescriptor(Types.class.getField("rawList"));
9486
Object result = this.conversionService.convert(stream, listOfStrings);
9587

96-
assertThat(result).as("Converted object must not be null").isNotNull();
97-
boolean condition = result instanceof List;
98-
assertThat(condition).as("Converted object must be a list").isTrue();
99-
@SuppressWarnings("unchecked")
100-
List<Object> content = (List<Object>) result;
101-
assertThat(content.get(0)).isEqualTo(1);
102-
assertThat(content.get(1)).isEqualTo(2);
103-
assertThat(content.get(2)).isEqualTo(3);
104-
assertThat(content.size()).as("Wrong number of elements").isEqualTo(3);
88+
assertThat(result).asInstanceOf(list(Object.class)).containsExactly(1, 2, 3);
10589
}
10690

10791
@Test
10892
void convertFromStreamToArrayNoConverter() throws NoSuchFieldException {
109-
Stream<Integer> stream = Arrays.asList(1, 2, 3).stream();
93+
Stream<Integer> stream = Stream.of(1, 2, 3);
11094
TypeDescriptor arrayOfLongs = new TypeDescriptor(Types.class.getField("arrayOfLongs"));
111-
assertThatExceptionOfType(ConversionFailedException.class).isThrownBy(() ->
112-
this.conversionService.convert(stream, arrayOfLongs))
95+
assertThatExceptionOfType(ConversionFailedException.class)
96+
.isThrownBy(() -> this.conversionService.convert(stream, arrayOfLongs))
11397
.withCauseInstanceOf(ConverterNotFoundException.class);
11498
}
11599

116100
@Test
117101
@SuppressWarnings("resource")
118102
void convertFromListToStream() throws NoSuchFieldException {
119103
this.conversionService.addConverterFactory(new StringToNumberConverterFactory());
120-
List<String> stream = Arrays.asList("1", "2", "3");
104+
List<String> list = Arrays.asList("1", "2", "3");
121105
TypeDescriptor streamOfInteger = new TypeDescriptor(Types.class.getField("streamOfIntegers"));
122-
Object result = this.conversionService.convert(stream, streamOfInteger);
106+
Object result = this.conversionService.convert(list, streamOfInteger);
123107

124-
assertThat(result).as("Converted object must not be null").isNotNull();
125-
boolean condition = result instanceof Stream;
126-
assertThat(condition).as("Converted object must be a stream").isTrue();
108+
assertThat(result).as("Converted object must be a stream").isInstanceOf(Stream.class);
127109
@SuppressWarnings("unchecked")
128110
Stream<Integer> content = (Stream<Integer>) result;
129111
assertThat(content.mapToInt(x -> x).sum()).isEqualTo(6);
@@ -132,34 +114,25 @@ void convertFromListToStream() throws NoSuchFieldException {
132114
@Test
133115
@SuppressWarnings("resource")
134116
void convertFromArrayToStream() throws NoSuchFieldException {
135-
Integer[] stream = new Integer[] {1, 0, 1};
117+
Integer[] array = new Integer[] {1, 0, 1};
136118
this.conversionService.addConverter(Integer.class, Boolean.class, source -> source == 1);
137119
TypeDescriptor streamOfBoolean = new TypeDescriptor(Types.class.getField("streamOfBooleans"));
138-
Object result = this.conversionService.convert(stream, streamOfBoolean);
120+
Object result = this.conversionService.convert(array, streamOfBoolean);
139121

140-
assertThat(result).as("Converted object must not be null").isNotNull();
141-
boolean condition = result instanceof Stream;
142-
assertThat(condition).as("Converted object must be a stream").isTrue();
143-
@SuppressWarnings("unchecked")
144-
Stream<Boolean> content = (Stream<Boolean>) result;
145-
assertThat(content.filter(x -> x).count()).isEqualTo(2);
122+
assertThat(result).asInstanceOf(stream(Boolean.class)).filteredOn(x -> x).hasSize(2);
146123
}
147124

148125
@Test
149126
@SuppressWarnings("resource")
150127
void convertFromListToRawStream() throws NoSuchFieldException {
151-
List<String> stream = Arrays.asList("1", "2", "3");
128+
List<String> list = Arrays.asList("1", "2", "3");
152129
TypeDescriptor streamOfInteger = new TypeDescriptor(Types.class.getField("rawStream"));
153-
Object result = this.conversionService.convert(stream, streamOfInteger);
130+
Object result = this.conversionService.convert(list, streamOfInteger);
154131

155-
assertThat(result).as("Converted object must not be null").isNotNull();
156-
boolean condition = result instanceof Stream;
157-
assertThat(condition).as("Converted object must be a stream").isTrue();
132+
assertThat(result).as("Converted object must be a stream").isInstanceOf(Stream.class);
158133
@SuppressWarnings("unchecked")
159134
Stream<Object> content = (Stream<Object>) result;
160-
StringBuilder sb = new StringBuilder();
161-
content.forEach(sb::append);
162-
assertThat(sb.toString()).isEqualTo("123");
135+
assertThat(content).containsExactly("1", "2", "3");
163136
}
164137

165138
@Test

0 commit comments

Comments
 (0)