@Test
  public void update_custom_rule() throws Exception {
    // Template rule
    RuleDto templateRule =
        ruleDao.insert(session, RuleTesting.newTemplateRule(RuleKey.of("java", "S001")));
    RuleParamDto param =
        RuleParamDto.createFor(templateRule)
            .setName("regex")
            .setType("STRING")
            .setDescription("Reg ex")
            .setDefaultValue(".*");
    ruleDao.insertRuleParam(session, templateRule, param);
    session.commit();

    // Custom rule
    NewRule newRule =
        NewRule.createForCustomRule("MY_CUSTOM", templateRule.getKey())
            .setName("Old custom")
            .setHtmlDescription("Old description")
            .setSeverity(Severity.MINOR)
            .setStatus(RuleStatus.BETA)
            .setParameters(ImmutableMap.of("regex", "a"));
    RuleKey customRuleKey = ruleService.create(newRule);
    session.clearCache();

    WsTester.TestRequest request =
        wsTester
            .newPostRequest("api/rules", "update")
            .setParam("key", customRuleKey.toString())
            .setParam("name", "My custom rule")
            .setParam("markdown_description", "Description")
            .setParam("severity", "MAJOR")
            .setParam("status", "BETA")
            .setParam("params", "regex=a.*");
    request.execute().assertJson(getClass(), "update_custom_rule.json");
  }