@Test
public void testCreateUser() {

    Set<String> roles = Stream.of("user").collect(Collectors.toSet());
    UserConfig config = new UserConfig.Builder(username, password, roles).email("example@example.com")
            .firstName("John").lastName("Doe").build();
    User user = engine.createUser(config);
    assertEquals(user.getResource().stringValue(), userId);
    assertTrue(user.getUsername().isPresent() && user.getUsername().get().stringValue().equals(username));
    assertTrue(user.getPassword().isPresent() && user.getPassword().get().stringValue().equals(password));
    assertEquals(user.getHasUserRole_resource().size(), roles.size());
    assertEquals(1, user.getMbox_resource().size());
    assertTrue(user.getMbox_resource().stream().map(Value::stringValue).collect(Collectors.toSet()).contains("mailto:example@example.com"));
    assertEquals(1, user.getFirstName().size());
    assertTrue(user.getFirstName().stream().map(Value::stringValue).collect(Collectors.toSet()).contains("John"));
    assertEquals(1, user.getLastName().size());
    assertTrue(user.getLastName().stream().map(Value::stringValue).collect(Collectors.toSet()).contains("Doe"));
}