webflux 下 Junit 测试

163 阅读1分钟

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = RouterCloudApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@AutoConfigureWebTestClient
public class TestChangePwd {

    @Resource
    EmailService emailService;

    @Resource
    UserRepository userRepository;

    @Lazy
    @Resource
    private PasswordEncoder passwordEncoder;

    @Test
    public void test() {
        Mono mono = userRepository.findByTenantIdAndUserId("6a901700-d181-4546-ac52-ac0fbc1f0903", 1)
            .flatMap(c -> Mono.just(Optional.of(c))).defaultIfEmpty(Optional.empty())
            .flatMap(option -> {
                if(option.isPresent()){
                    User user = option.get();

                    String pwd = passwordEncoder.encode("123456");
                    user.setPassword(pwd);
                    return userRepository.save(user);

//                    // 生成新密码 发送邮件
//                    String lang = "zh_CN";
//                    String finalNewPassword = UUID.randomUUID().toString().substring(0, 6);
//                    Boolean result = sendResetPwdEmail(finalNewPassword, user.getUserMail(), lang);
//                    // 修改用户密码
//                    if(result){
//                        String pwd = passwordEncoder.encode(finalNewPassword);
//                        user.setPassword(pwd);
//                        return userRepository.save(user);
//                    } else {
//                        return Mono.error(new RuntimeException(Constant.SEND_EMAIL_FAIL));
//                    }
                }
                return Mono.empty();
            });
        StepVerifier.create(mono).expectNextCount(1).expectComplete().verify();
    }
}