### Question:
SimpleCredentialGenerator implements CredentialGenerator { @Override public Mono<Tuple2<String, String>> generateUser(String applicationId, String serviceInstanceId, String descriptor, int length, boolean includeUppercaseAlpha, boolean includeLowercaseAlpha, boolean includeNumeric, boolean includeSpecial) { return generateString(applicationId, serviceInstanceId, descriptor, length, includeUppercaseAlpha, includeLowercaseAlpha, includeNumeric, includeSpecial) .flatMap(username -> generateString(applicationId, serviceInstanceId, descriptor, length, includeUppercaseAlpha, includeLowercaseAlpha, includeNumeric, includeSpecial) .map(password -> Tuples.of(username, password))); }  @Override Mono<Tuple2<String, String>> generateUser(String applicationId, String serviceInstanceId, String descriptor,
		int length,
		boolean includeUppercaseAlpha, boolean includeLowercaseAlpha,
		boolean includeNumeric, boolean includeSpecial); @Override Mono<String> generateString(String applicationId, String serviceInstanceId, String descriptor, int length,
		boolean includeUppercaseAlpha, boolean includeLowercaseAlpha,
		boolean includeNumeric, boolean includeSpecial);  }### Answer:
@Test void generateUser() { SimpleCredentialGenerator generator = new SimpleCredentialGenerator(); StepVerifier.create(generator.generateUser(null, null, null, 10, true, true, true, true)) .assertNext(user -> { assertThat(user.getT1().length()).isEqualTo(10); assertThat(user.getT2().length()).isEqualTo(10); }) .verifyComplete(); }