Details
Description
HBase does some weird RRT overrights:
Test:
@Test public void getAllMappingsShouldListAllEntries() throws ErrorMappingException, RecipientRewriteTableException { String user = "test"; String user2 = "test2"; Domain domain = Domain.LOCALHOST; // String regex = "(.*):{$1}@localhost"; // String regex2 = "(.+):{$1}@test"; String regex = "(.*)@localhost"; String regex2 = "(.+)@test"; assertThat(virtualUserTable.getMappings(user, domain)).describedAs("No mapping").isNull(); addMapping(user, domain, regex, Type.Regex); addMapping(user, domain, regex2, Type.Regex); addMapping(user2, domain, user + "@" + domain.asString(), Type.Address); assertThat(virtualUserTable.getAllMappings()) .describedAs("One mappingline") .containsOnly( Pair.of(user + "@" + domain.asString(), MappingsImpl.builder() .add(MappingImpl.regex(regex)) .add(MappingImpl.regex(regex2)) .build()), Pair.of(user2 + "@" + domain.asString(), MappingsImpl.builder() .add(MappingImpl.address(user + "@" + domain.asString())) .build())); }
Result:
java.lang.AssertionError: [One mappingline] Expecting: <{"test2@localhost"=MappingsImpl{mappings=[MappingImpl{type=Address mapping=test2@localhost}]}, "test@localhost"=MappingsImpl{mappings=[MappingImpl{type=Address mapping=test@localhost}]}}> to contain only: <[(test@localhost,MappingsImpl{mappings=[MappingImpl{type=Regex mapping=(.*)@localhost}, MappingImpl{type=Regex mapping=(.+)@test}]}), (test2@localhost,MappingsImpl{mappings=[MappingImpl{type=Address mapping=test@localhost}]})]> elements not found: <[MapEntry[key="test@localhost", value=MappingsImpl{mappings=[MappingImpl{type=Regex mapping=(.*)@localhost}, MappingImpl{type=Regex mapping=(.+)@test}]}], MapEntry[key="test2@localhost", value=MappingsImpl{mappings=[MappingImpl{type=Address mapping=test@localhost}]}]]> and elements not expected: <[MapEntry[key="test2@localhost", value=MappingsImpl{mappings=[MappingImpl{type=Address mapping=test2@localhost}]}], MapEntry[key="test@localhost", value=MappingsImpl{mappings=[MappingImpl{type=Address mapping=test@localhost}]}]]>
This behaviour was not tested.
I will disable the test.
Contribution welcomes to fix this.
(See HBaseRecipientRewriteTableTest)