use of eu.bcvsolutions.idm.core.api.dto.ValueGeneratorDto in project CzechIdMng by bcvsolutions.
the class IdentityUsernameGeneratorTest method testWhiteSpacesWithCharacter.
@Test
public void testWhiteSpacesWithCharacter() {
String firstName = " first Nam e";
String lastName = "last Na me ";
String firtsNameResult = "..first.Nam...e";
String lastNameResult = "last.Na.me.";
ValueGeneratorDto generator = getGenerator();
this.createGenerator(getDtoType(), getGeneratorType(), this.createConfiguration(generator.getFormDefinition(), ImmutableMap.of(IdentityUsernameGenerator.FIRST_NAME_FIRST, Boolean.FALSE.toString(), IdentityUsernameGenerator.REPLACE_WHITE_SPACES_CHARACTER, ".")), 1, null);
IdmIdentityDto identityDto = new IdmIdentityDto();
identityDto.setFirstName(firstName.toString());
identityDto.setLastName(lastName.toString());
IdmIdentityDto generatedDto = identityService.save(identityDto);
assertEquals(identityDto.getLastName(), generatedDto.getLastName());
assertEquals(identityDto.getFirstName(), generatedDto.getFirstName());
assertNotNull(generatedDto.getUsername());
assertEquals(lastNameResult.toLowerCase() + firtsNameResult.toLowerCase(), generatedDto.getUsername());
}
use of eu.bcvsolutions.idm.core.api.dto.ValueGeneratorDto in project CzechIdMng by bcvsolutions.
the class IdentityUsernameGeneratorTest method generateShorterPropertiesWithEmptyString.
@Test
public void generateShorterPropertiesWithEmptyString() {
String firstName = "firstName";
String lastName = "lastName";
ValueGeneratorDto generator = getGenerator();
this.createGenerator(getDtoType(), getGeneratorType(), this.createConfiguration(generator.getFormDefinition(), ImmutableMap.of(IdentityUsernameGenerator.FIRST_NAME_CHARACTERS_COUNT, "", IdentityUsernameGenerator.LAST_NAME_CHARACTERS_COUNT, "", IdentityUsernameGenerator.FIRST_NAME_FIRST, Boolean.TRUE.toString())), 1, null);
IdmIdentityDto identityDto = new IdmIdentityDto();
identityDto.setFirstName(firstName);
identityDto.setLastName(lastName);
IdmIdentityDto generatedDto = valueGeneratorManager.generate(identityDto);
assertEquals(identityDto.getLastName(), generatedDto.getLastName());
assertEquals(identityDto.getFirstName(), generatedDto.getFirstName());
assertNotNull(generatedDto.getUsername());
assertEquals(firstName.toLowerCase() + lastName.toLowerCase(), generatedDto.getUsername());
}
use of eu.bcvsolutions.idm.core.api.dto.ValueGeneratorDto in project CzechIdMng by bcvsolutions.
the class IdentityUsernameGeneratorTest method generateWithMoreGenerator.
@Test
public void generateWithMoreGenerator() {
String firstName = "firstName" + System.currentTimeMillis();
String lastName = "lastName" + System.currentTimeMillis();
ValueGeneratorDto generator = getGenerator();
// first
this.createGenerator(getDtoType(), getGeneratorType(), this.createConfiguration(generator.getFormDefinition(), ImmutableMap.of(IdentityUsernameGenerator.FIRST_NAME_CHARACTERS_COUNT, "1", IdentityUsernameGenerator.LAST_NAME_CHARACTERS_COUNT, "1", IdentityUsernameGenerator.CONNECTING_CHARACTER, "--")), 1, null);
// second
this.createGenerator(getDtoType(), getGeneratorType(), this.createConfiguration(generator.getFormDefinition(), ImmutableMap.of(IdentityUsernameGenerator.FIRST_NAME_CHARACTERS_COUNT, "5", IdentityUsernameGenerator.CONNECTING_CHARACTER, "-")), 10, null);
// the last - this generator will be generate username
this.createGenerator(getDtoType(), getGeneratorType(), this.createConfiguration(generator.getFormDefinition(), ImmutableMap.of(IdentityUsernameGenerator.CONNECTING_CHARACTER, ".", IdentityUsernameGenerator.FIRST_NAME_FIRST, Boolean.TRUE.toString())), 20, null);
IdmIdentityDto identityDto = new IdmIdentityDto();
identityDto.setFirstName(firstName.toString());
identityDto.setLastName(lastName.toString());
IdmIdentityDto generatedDto = identityService.save(identityDto);
assertEquals(identityDto.getLastName(), generatedDto.getLastName());
assertEquals(identityDto.getFirstName(), generatedDto.getFirstName());
assertNotNull(generatedDto.getUsername());
assertEquals(firstName.toLowerCase() + "." + lastName.toLowerCase(), generatedDto.getUsername());
}
use of eu.bcvsolutions.idm.core.api.dto.ValueGeneratorDto in project CzechIdMng by bcvsolutions.
the class IdentityAnonymousUsernameGeneratorTest method generateNumberOfIdentities.
/**
* This test generates defined number of identities with generated username.
* It can be parameterized with genPartLen specifying the length of numeric part and
* generatedIndentitiesNum saying number of generated users during test. Both has to conform formula
* generatedIndentitiesNum <= 10^genPartLen (it's power not xor).
*/
@Test
public // @Ignore
void generateNumberOfIdentities() {
int genPartLen = 2;
int generatedIndentitiesNum = 100;
String prefix = getHelper().createName() + "_";
ValueGeneratorDto generator = getGenerator();
this.createGenerator(getDtoType(), getGeneratorType(), this.createConfiguration(generator.getFormDefinition(), ImmutableMap.of(IdentityAnonymousUsernameGenerator.USERNAME_PREFIX, prefix, IdentityAnonymousUsernameGenerator.GENERATED_NUMBER_LENGTH, String.valueOf(genPartLen))), 1, Boolean.FALSE);
for (int i = 0; i < generatedIndentitiesNum; i++) {
IdmIdentityDto identityDto = new IdmIdentityDto();
try {
IdmIdentityDto generatedDto = valueGeneratorManager.generate(identityDto);
identityService.save(generatedDto);
// System.out.println(String.valueOf(i)+" - generated: " + generatedDto.getUsername());
} catch (ResultCodeException ex) {
// we don't care solved in following Asserts
}
}
IdmIdentityFilter identFilt = new IdmIdentityFilter();
identFilt.setText(prefix);
List<IdmIdentityDto> results = identityService.find(identFilt, null).getContent();
// at least 99% has to be found
Assert.assertTrue(0.99 * generatedIndentitiesNum < results.size());
Set<String> usernameSet = results.stream().map(IdmIdentityDto::getUsername).collect(Collectors.toSet());
Assert.assertEquals(results.size(), usernameSet.size());
}
use of eu.bcvsolutions.idm.core.api.dto.ValueGeneratorDto in project CzechIdMng by bcvsolutions.
the class IdentityAnonymousUsernameGeneratorTest method numericPartLengthMatterTest.
/*
* Tests that length of numbers matter. It means 07 is not same as 7
*/
@Test
public void numericPartLengthMatterTest() {
// existing users
List<String> existingUsers = Arrays.asList("testUserXXX0", "testUserXXX1", "testUserXXX2", "testUserXXX3", "testUserXXX4", "testUserXXX5", "testUserXXX6", /*"testUserXXX7"*/
"testUserXXX8", "testUserXXX9", "testUserXXX07");
existingUsers.forEach(user -> {
identityService.save(new IdmIdentityDto(user));
});
int genPartLen = 1;
String prefix = "testUserXXX";
ValueGeneratorDto generator = getGenerator();
this.createGenerator(getDtoType(), getGeneratorType(), this.createConfiguration(generator.getFormDefinition(), ImmutableMap.of(IdentityAnonymousUsernameGenerator.USERNAME_PREFIX, prefix, IdentityAnonymousUsernameGenerator.GENERATED_NUMBER_LENGTH, String.valueOf(genPartLen))), 1, Boolean.FALSE);
IdmIdentityDto identityDto = new IdmIdentityDto();
try {
IdmIdentityDto generatedDto = valueGeneratorManager.generate(identityDto);
identityDto = identityService.save(generatedDto);
} catch (ResultCodeException ex) {
fail();
}
Assert.assertEquals("testUserXXX7", identityDto.getUsername());
}
Aggregations