-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Closed as not planned
Description
Say, I have the following methods.
class Some {
static Stream<Arguments> getNameAndAgeArgumentsStream() {
return Stream.of(
Arguments.of(
Named.of("Whatever", "John"), // <<<<<<<<<<<<<<<<<
1
);
}
}
class Other {
static Stream<Arguments> getNameAndAgeArgumentsStream() {
return Stream.of(
Arguments.of(
"Jane", // <<<<<<<<<<<<<<<<<<<<<<<
1
);
}
}Now I want to use those two methods in other class.
class Another {
static Stream<Arguments> getPrefixedNameAndAgeArguemntsStream() {
return Stream.concat(
Some.getNameAndAgeArgumentsStream(),
Other.getNameAndAgeArgumentsStream()
)
.map(a -> {
var arguments = a.get();
var name = arguments[0] instanceof Named ? ((Named<String>) arguments[0]).getPayload() : arguments[0];
return Arguments.of(
"prefix" + name,
arguments[1]
);
});
}
}I had to use a method looks like this.
public static <T> T payload(final Object argument) {
Objects.requireNonNull(argument, "argument is null");
if (argument instanceof Named<?>) {
return payload(((Named<?>) argument).getPayload());
}
return (T) argument;
}Deliverables
- Add a method returns ultimate payload values from an
Arguments, say,getPayloads()[Ljava.lang.Object