@@ -46,11 +46,33 @@ public class CxxOtherRepositoryTest {
4646
4747 private final String profile2 = "<?xml version=\" 1.0\" encoding=\" ASCII\" ?>\n "
4848 + "<rules>\n "
49- + " <rule key=\" key\" >\n "
50- + " <name><![CDATA[name]]></name>\n "
51- + " <configKey><![CDATA[configKey]]></configKey>\n "
52- + " <category name=\" category\" />\n "
53- + " <description><![CDATA[description]]></description>\n "
49+ + " <rule key=\" key1\" >\n "
50+ + " <name><![CDATA[name1]]></name>\n "
51+ + " <configKey><![CDATA[configKey1]]></configKey>\n "
52+ + " <category name=\" category1\" />\n "
53+ + " <description><![CDATA[description1]]></description>\n "
54+ + " </rule>\n "
55+ + " <rule key=\" key2\" >\n "
56+ + " <name><![CDATA[name2]]></name>\n "
57+ + " <configKey><![CDATA[configKey2]]></configKey>\n "
58+ + " <category name=\" category2\" />\n "
59+ + " <description><![CDATA[description2]]></description>\n "
60+ + " </rule>\n "
61+ + "</rules>" ;
62+
63+ private final String profile3 = "<?xml version=\" 1.0\" encoding=\" ASCII\" ?>\n "
64+ + "<rules>\n "
65+ + " <rule key=\" key1\" >\n "
66+ + " <name><![CDATA[name1]]></name>\n "
67+ + " <configKey><![CDATA[configKey1]]></configKey>\n "
68+ + " <category name=\" category1\" />\n "
69+ + " <description><![CDATA[description1]]></description>\n "
70+ + " </rule>\n "
71+ + " <rule key=\" key3\" >\n "
72+ + " <name><![CDATA[name3]]></name>\n "
73+ + " <configKey><![CDATA[configKey3]]></configKey>\n "
74+ + " <category name=\" category3\" />\n "
75+ + " <description><![CDATA[description3]]></description>\n "
5476 + " </rule>\n "
5577 + "</rules>" ;
5678
@@ -99,15 +121,41 @@ public void verifyRuleValuesTest() {
99121 def .define (context );
100122
101123 RulesDefinition .Repository repo = context .repository (CxxOtherRepository .KEY );
102- var rule = repo .rule ("key " );
124+ var rule = repo .rule ("key1 " );
103125 assertThat (rule ).isNotNull ();
104126
105- // from rule.xml
106- assertThat (rule .key ()).isEqualTo ("key" );
107- assertThat (rule .name ()).isEqualTo ("name" );
108- assertThat (rule .internalKey ()).isEqualTo ("configKey" );
109- assertThat (rule .htmlDescription ()).isEqualTo ("description" );
127+ assertThat (rule .key ()).isEqualTo ("key1" );
128+ assertThat (rule .name ()).isEqualTo ("name1" );
129+ assertThat (rule .internalKey ()).isEqualTo ("configKey1" );
130+ assertThat (rule .htmlDescription ()).isEqualTo ("description1" );
131+ }
132+
133+ @ Test
134+ public void verifyRulesWithSameKey () {
135+ settings .setProperty (CxxOtherSensor .RULES_KEY , profile2 + "," + profile3 );
136+ var def = new CxxOtherRepository (settings .asConfig (), new RulesDefinitionXmlLoader ());
137+
138+ var context = new RulesDefinition .Context ();
139+ def .define (context );
140+
141+ RulesDefinition .Repository repo = context .repository (CxxOtherRepository .KEY );
142+ assertThat (repo .rules ()).hasSize (3 );
143+
144+ var rule = repo .rule ("key1" );
145+ assertThat (rule ).isNotNull ();
146+
147+ assertThat (rule .key ()).isEqualTo ("key1" );
148+ assertThat (rule .name ()).isEqualTo ("name1" );
149+ assertThat (rule .internalKey ()).isEqualTo ("configKey1" );
150+ assertThat (rule .htmlDescription ()).isEqualTo ("description1" );
151+
152+ rule = repo .rule ("key2" );
153+ assertThat (rule ).isNotNull ();
110154
155+ assertThat (rule .key ()).isEqualTo ("key2" );
156+ assertThat (rule .name ()).isEqualTo ("name2" );
157+ assertThat (rule .internalKey ()).isEqualTo ("configKey2" );
158+ assertThat (rule .htmlDescription ()).isEqualTo ("description2" );
111159 }
112160
113161}
0 commit comments