Skip to content

Commit b751801

Browse files
committed
tests
1 parent 5391d7d commit b751801

File tree

5 files changed

+157
-28
lines changed

5 files changed

+157
-28
lines changed

aaa/src/test/java/name/nkonev/aaa/controllers/UserProfileControllerTest.java

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -604,33 +604,6 @@ public void ldapSyncCreatesUsers() {
604604
Assertions.assertEquals(4L, ldapUsersAfter);
605605
}
606606

607-
@Test
608-
public void ldapSyncOverridesUsers() {
609-
var conflictingLogin = USER_BEN_LDAP;
610-
var conflictingEmail = conflictingLogin+"@example.com";
611-
UserAccount userAccount = new UserAccount(
612-
null,
613-
CreationType.REGISTRATION,
614-
conflictingLogin, null, null, null, null,false, false, true, true,
615-
new UserRole[]{UserRole.ROLE_USER}, conflictingEmail, null, null, null, null, null, null, null, null);
616-
userAccountRepository.save(userAccount);
617-
var before = userAccountRepository.findByUsername(conflictingLogin).get();
618-
Assertions.assertEquals(conflictingEmail, before.email());
619-
620-
var ldapUsersBefore = jdbcTemplate.queryForObject("select count (*) from user_account where ldap_id is not null", Long.class);
621-
Assertions.assertEquals(0L, ldapUsersBefore);
622-
623-
syncLdapTask.doWork();
624-
625-
var ldapUsersAfter = jdbcTemplate.queryForObject("select count (*) from user_account where ldap_id is not null", Long.class);
626-
Assertions.assertEquals(4L, ldapUsersAfter);
627-
628-
var after = userAccountRepository.findByUsername(conflictingLogin).get();
629-
Assertions.assertNotEquals(conflictingEmail, after.email());
630-
Assertions.assertEquals(USER_BEN_LDAP_EMAIL, after.email());
631-
Assertions.assertNotEquals(before.id(), after.id());
632-
}
633-
634607
final String userForChangeEmail0 = "generated_user_20";
635608
@WithUserDetails(userForChangeEmail0)
636609
@Test
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package name.nkonev.aaa.tasks;
2+
3+
import name.nkonev.aaa.AbstractMockMvcTestRunner;
4+
import name.nkonev.aaa.dto.UserRole;
5+
import name.nkonev.aaa.entity.jdbc.CreationType;
6+
import name.nkonev.aaa.entity.jdbc.UserAccount;
7+
import name.nkonev.aaa.repository.jdbc.UserAccountRepository;
8+
import org.junit.jupiter.api.Assertions;
9+
import org.junit.jupiter.api.Test;
10+
import org.springframework.beans.factory.annotation.Autowired;
11+
import org.springframework.test.context.TestPropertySource;
12+
13+
import static name.nkonev.aaa.TestConstants.USER_BEN_LDAP;
14+
import static name.nkonev.aaa.TestConstants.USER_BEN_LDAP_EMAIL;
15+
16+
@TestPropertySource(properties = {"custom.ldap.resolve-conflicts-strategy=IGNORE"})
17+
public class SyncLdapIgnoreTest extends AbstractMockMvcTestRunner {
18+
@Autowired
19+
private UserAccountRepository userAccountRepository;
20+
21+
@Autowired
22+
private SyncLdapTask syncLdapTask;
23+
24+
@Test
25+
public void syncLdap() {
26+
var conflictingLogin = USER_BEN_LDAP;
27+
var conflictingEmail = conflictingLogin+"@example.com";
28+
UserAccount userAccount = new UserAccount(
29+
null,
30+
CreationType.REGISTRATION,
31+
conflictingLogin, null, null, null, null,false, false, true, true,
32+
new UserRole[]{UserRole.ROLE_USER}, conflictingEmail, null, null, null, null, null, null, null, null);
33+
userAccountRepository.save(userAccount);
34+
var before = userAccountRepository.findByUsername(conflictingLogin).get();
35+
Assertions.assertEquals(conflictingEmail, before.email());
36+
37+
var ldapUsersBefore = jdbcTemplate.queryForObject("select count (*) from user_account where ldap_id is not null", Long.class);
38+
Assertions.assertEquals(0L, ldapUsersBefore);
39+
40+
syncLdapTask.doWork();
41+
42+
var ldapUsersAfter = jdbcTemplate.queryForObject("select count (*) from user_account where ldap_id is not null", Long.class);
43+
Assertions.assertEquals(3L, ldapUsersAfter);
44+
45+
var after = userAccountRepository.findByUsername(conflictingLogin).get();
46+
Assertions.assertEquals(conflictingEmail, after.email());
47+
Assertions.assertNotEquals(USER_BEN_LDAP_EMAIL, after.email());
48+
Assertions.assertEquals(before.id(), after.id());
49+
}
50+
51+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package name.nkonev.aaa.tasks;
2+
3+
import name.nkonev.aaa.AbstractMockMvcTestRunner;
4+
import name.nkonev.aaa.dto.UserRole;
5+
import name.nkonev.aaa.entity.jdbc.CreationType;
6+
import name.nkonev.aaa.entity.jdbc.UserAccount;
7+
import name.nkonev.aaa.repository.jdbc.UserAccountRepository;
8+
import org.junit.jupiter.api.Assertions;
9+
import org.junit.jupiter.api.Test;
10+
import org.springframework.beans.factory.annotation.Autowired;
11+
import org.springframework.test.context.TestPropertySource;
12+
13+
import static name.nkonev.aaa.TestConstants.USER_BEN_LDAP;
14+
import static name.nkonev.aaa.TestConstants.USER_BEN_LDAP_EMAIL;
15+
16+
@TestPropertySource(properties = {"custom.ldap.resolve-conflicts-strategy=WRITE_NEW_AND_REMOVE_OLD"})
17+
public class SyncLdapRemoveUserTest extends AbstractMockMvcTestRunner {
18+
19+
@Autowired
20+
private UserAccountRepository userAccountRepository;
21+
22+
@Autowired
23+
private SyncLdapTask syncLdapTask;
24+
25+
@Test
26+
public void syncLdap() {
27+
var conflictingLogin = USER_BEN_LDAP;
28+
var conflictingEmail = conflictingLogin+"@example.com";
29+
UserAccount userAccount = new UserAccount(
30+
null,
31+
CreationType.REGISTRATION,
32+
conflictingLogin, null, null, null, null,false, false, true, true,
33+
new UserRole[]{UserRole.ROLE_USER}, conflictingEmail, null, null, null, null, null, null, null, null);
34+
userAccountRepository.save(userAccount);
35+
var before = userAccountRepository.findByUsername(conflictingLogin).get();
36+
Assertions.assertEquals(conflictingEmail, before.email());
37+
38+
var ldapUsersBefore = jdbcTemplate.queryForObject("select count (*) from user_account where ldap_id is not null", Long.class);
39+
Assertions.assertEquals(0L, ldapUsersBefore);
40+
41+
syncLdapTask.doWork();
42+
43+
var ldapUsersAfter = jdbcTemplate.queryForObject("select count (*) from user_account where ldap_id is not null", Long.class);
44+
Assertions.assertEquals(4L, ldapUsersAfter);
45+
46+
var after = userAccountRepository.findByUsername(conflictingLogin).get();
47+
Assertions.assertNotEquals(conflictingEmail, after.email());
48+
Assertions.assertEquals(USER_BEN_LDAP_EMAIL, after.email());
49+
Assertions.assertNotEquals(before.id(), after.id());
50+
}
51+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package name.nkonev.aaa.tasks;
2+
3+
import name.nkonev.aaa.AbstractMockMvcTestRunner;
4+
import name.nkonev.aaa.dto.UserRole;
5+
import name.nkonev.aaa.entity.jdbc.CreationType;
6+
import name.nkonev.aaa.entity.jdbc.UserAccount;
7+
import name.nkonev.aaa.repository.jdbc.UserAccountRepository;
8+
import org.junit.jupiter.api.Assertions;
9+
import org.junit.jupiter.api.Test;
10+
import org.springframework.beans.factory.annotation.Autowired;
11+
import org.springframework.test.context.TestPropertySource;
12+
13+
import static name.nkonev.aaa.Constants.LDAP_CONFLICT_PREFIX;
14+
import static name.nkonev.aaa.TestConstants.USER_BEN_LDAP;
15+
import static name.nkonev.aaa.TestConstants.USER_BEN_LDAP_EMAIL;
16+
17+
@TestPropertySource(properties = {"custom.ldap.resolve-conflicts-strategy=WRITE_NEW_AND_RENAME_OLD"})
18+
public class SyncLdapRenameUserTest extends AbstractMockMvcTestRunner {
19+
20+
@Autowired
21+
private UserAccountRepository userAccountRepository;
22+
23+
@Autowired
24+
private SyncLdapTask syncLdapTask;
25+
26+
@Test
27+
public void syncLdap() {
28+
var conflictingLogin = USER_BEN_LDAP;
29+
var conflictingEmail = conflictingLogin+"@example.com";
30+
UserAccount userAccount = new UserAccount(
31+
null,
32+
CreationType.REGISTRATION,
33+
conflictingLogin, null, null, null, null,false, false, true, true,
34+
new UserRole[]{UserRole.ROLE_USER}, conflictingEmail, null, null, null, null, null, null, null, null);
35+
userAccountRepository.save(userAccount);
36+
var before = userAccountRepository.findByUsername(conflictingLogin).get();
37+
Assertions.assertEquals(conflictingEmail, before.email());
38+
39+
var ldapUsersBefore = jdbcTemplate.queryForObject("select count (*) from user_account where ldap_id is not null", Long.class);
40+
Assertions.assertEquals(0L, ldapUsersBefore);
41+
42+
syncLdapTask.doWork();
43+
44+
var ldapUsersAfter = jdbcTemplate.queryForObject("select count (*) from user_account where ldap_id is not null", Long.class);
45+
Assertions.assertEquals(4L, ldapUsersAfter);
46+
47+
var after = userAccountRepository.findByUsername(conflictingLogin).get();
48+
Assertions.assertNotEquals(conflictingEmail, after.email());
49+
Assertions.assertEquals(USER_BEN_LDAP_EMAIL, after.email());
50+
Assertions.assertNotEquals(before.id(), after.id());
51+
52+
Assertions.assertTrue(userAccountRepository.findByUsername(LDAP_CONFLICT_PREFIX + conflictingLogin).isPresent());
53+
}
54+
55+
}

aaa/src/test/resources/config/application.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,6 @@ custom.ldap:
171171
password:
172172
encodingType: ""
173173
strength: 10
174-
resolve-conflicts-strategy: WRITE_NEW_AND_REMOVE_OLD
175174

176175
custom.http-client:
177176
connect-timeout: 3s

0 commit comments

Comments
 (0)