@Test
  public void define_xoo_rules() {
    XooRulesDefinition def = new XooRulesDefinition();
    RulesDefinition.Context context = new RulesDefinition.Context();
    def.define(context);

    RulesDefinition.Repository repo = context.repository("xoo");
    assertThat(repo).isNotNull();
    assertThat(repo.name()).isEqualTo("Xoo");
    assertThat(repo.language()).isEqualTo("xoo");
    assertThat(repo.rules()).hasSize(1);

    RulesDefinition.Rule x1 = repo.rule("x1");
    assertThat(x1.key()).isEqualTo("x1");
    assertThat(x1.tags()).containsOnly("style", "security");
    assertThat(x1.htmlDescription()).isNotEmpty();

    assertThat(x1.debtSubCharacteristic())
        .isEqualTo(RulesDefinition.SubCharacteristics.INTEGRATION_TESTABILITY);
    assertThat(x1.debtRemediationFunction().type())
        .isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET);
    assertThat(x1.debtRemediationFunction().coefficient()).isEqualTo("1h");
    assertThat(x1.debtRemediationFunction().offset()).isEqualTo("30min");
    assertThat(x1.effortToFixDescription()).isEqualTo("Effort to fix issue on one line");
  }