diff --git a/src/test/java/org/ligoj/app/plugin/id/resource/CompanyResourceTest.java b/src/test/java/org/ligoj/app/plugin/id/resource/CompanyResourceTest.java
index 93c421e..1690e53 100644
--- a/src/test/java/org/ligoj/app/plugin/id/resource/CompanyResourceTest.java
+++ b/src/test/java/org/ligoj/app/plugin/id/resource/CompanyResourceTest.java
@@ -3,13 +3,7 @@
*/
package org.ligoj.app.plugin.id.resource;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
import jakarta.transaction.Transactional;
-
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -19,9 +13,7 @@
import org.ligoj.app.iam.UserOrg;
import org.ligoj.app.model.ContainerType;
import org.ligoj.app.plugin.id.dao.ContainerScopeRepository;
-import org.ligoj.app.plugin.id.model.ContainerScope;
import org.ligoj.bootstrap.MatcherUtil;
-import org.ligoj.bootstrap.core.json.TableItem;
import org.ligoj.bootstrap.core.validation.ValidationJsonException;
import org.mockito.ArgumentMatchers;
import org.mockito.Mockito;
@@ -31,6 +23,10 @@
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+
/**
* Test of {@link CompanyResource}
*/
@@ -46,7 +42,7 @@ class CompanyResourceTest extends AbstractContainerResourceTest {
void mock() {
resource = new CompanyResource();
applicationContext.getAutowireCapableBeanFactory().autowireBean(resource);
- resource.iamProvider = new IamProvider[] { iamProvider };
+ resource.iamProvider = new IamProvider[]{iamProvider};
Mockito.when(companyRepository.getTypeName()).thenReturn("company");
}
@@ -58,11 +54,11 @@ void mock() {
*/
@Test
void getContainers() {
- final TableItem items = resource.getContainers(newUriInfo());
+ final var items = resource.getContainers(newUriInfo());
Assertions.assertEquals(9, items.getRecordsFiltered());
Assertions.assertEquals(9, items.getRecordsTotal());
Assertions.assertEquals(9, items.getData().size());
- Assertions.assertEquals("external", items.getData().get(0));
+ Assertions.assertEquals("external", items.getData().getFirst());
}
/**
@@ -70,11 +66,11 @@ void getContainers() {
*/
@Test
void getContainersForWrite() {
- final TableItem items = resource.getContainersForWrite(newUriInfo());
+ final var items = resource.getContainersForWrite(newUriInfo());
Assertions.assertEquals(9, items.getRecordsFiltered());
Assertions.assertEquals(9, items.getRecordsTotal());
Assertions.assertEquals(9, items.getData().size());
- Assertions.assertEquals("external", items.getData().get(0));
+ Assertions.assertEquals("external", items.getData().getFirst());
}
/**
@@ -83,7 +79,7 @@ void getContainersForWrite() {
@Test
void getContainersForWrite2() {
initSpringSecurityContext("mtuyer");
- final TableItem items = resource.getContainersForWrite(newUriInfo());
+ final var items = resource.getContainersForWrite(newUriInfo());
Assertions.assertEquals(0, items.getRecordsFiltered());
Assertions.assertEquals(0, items.getRecordsTotal());
Assertions.assertEquals(0, items.getData().size());
@@ -94,18 +90,45 @@ void getContainersForWrite2() {
* administration.
*/
@Test
- void getContainersForAdmin() {
+ void getContainersForAdminNoRight() {
initSpringSecurityContext("mlavoine");
- final TableItem items = resource.getContainersForAdmin(newUriInfo());
+ final var items = resource.getContainersForAdmin(newUriInfo());
Assertions.assertEquals(0, items.getRecordsFiltered());
Assertions.assertEquals(0, items.getRecordsTotal());
Assertions.assertEquals(0, items.getData().size());
}
@Test
- void getContainersForAdmin2() {
+ void getContainersForAdminInternalNoRight() {
+ initSpringSecurityContext("mlavoine");
+ final var companyOrg1 = new CompanyOrg("ou=france,ou=people,dc=sample,dc=com", "france");
+ final var companyOrg2 = new CompanyOrg("ou=ing-internal,ou=ing,ou=external,ou=people,dc=sample,dc=com", "ing-internal");
+ final var companies = new HashMap();
+ companies.put("france", companyOrg1);
+ companies.put("ing-internal", companyOrg2);
+ Mockito.when(companyRepository.findAll()).thenReturn(companies);
+ final var items = resource.getContainersForAdmin();
+ Assertions.assertEquals(0, items.size());
+ }
+
+ @Test
+ void getContainersForAdminInternal() {
+ initSpringSecurityContext("fdaugan");
+ final var companyOrg1 = new CompanyOrg("ou=france,ou=people,dc=sample,dc=com", "france");
+ final var companyOrg2 = new CompanyOrg("ou=ing-internal,ou=ing,ou=external,ou=people,dc=sample,dc=com", "ing-internal");
+ final var companies = new HashMap();
+ companies.put("france", companyOrg1);
+ companies.put("ing-internal", companyOrg2);
+ Mockito.when(companyRepository.findAll()).thenReturn(companies);
+ final var items = resource.getContainersForAdmin();
+ Assertions.assertEquals(1, items.size());
+ Assertions.assertEquals("ing-internal", items.stream().iterator().next().getId());
+ }
+
+ @Test
+ void getContainersForAdmin() {
initSpringSecurityContext("fdaugan");
- final TableItem items = resource.getContainersForAdmin(newUriInfo());
+ final var items = resource.getContainersForAdmin(newUriInfo());
Assertions.assertEquals(2, items.getRecordsFiltered());
Assertions.assertEquals(2, items.getRecordsTotal());
Assertions.assertEquals(2, items.getData().size());
@@ -132,7 +155,7 @@ void findByIdExpected() {
@Test
void getContainersMyCompany() {
initSpringSecurityContext("mmartin");
- final TableItem items = resource.getContainers(newUriInfo());
+ final var items = resource.getContainers(newUriInfo());
Assertions.assertEquals(4, items.getRecordsFiltered());
Assertions.assertEquals(4, items.getRecordsTotal());
Assertions.assertEquals(4, items.getData().size());
@@ -146,24 +169,20 @@ void getContainersMyCompany() {
@Test
void createNoWriteRight() {
- final ContainerScope scope = containerScopeRepository.findByName("France");
- final ContainerEditionVo group = new ContainerEditionVo();
+ final var scope = containerScopeRepository.findByName("France");
+ final var group = new ContainerEditionVo();
group.setName("New-Ax-1-z:Z 0");
group.setScope(scope.getId());
initSpringSecurityContext("mmartin");
- MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> {
- resource.create(group);
- }), "name", "read-only");
+ MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> resource.create(group)), "name", "read-only");
}
@Test
void deleteNotVisile() {
initSpringSecurityContext("mmartin");
- final CompanyOrg companyOrg1 = new CompanyOrg("ou=ligoj,ou=france,ou=people,dc=sample,dc=com", "ligoj");
+ final var companyOrg1 = new CompanyOrg("ou=ligoj,ou=france,ou=people,dc=sample,dc=com", "ligoj");
Mockito.when(companyRepository.findByIdExpected("mmartin", "ligoj")).thenReturn(companyOrg1);
- MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> {
- resource.delete("ligoj");
- }), "company", "unknown-id");
+ MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> resource.delete("ligoj")), "company", "unknown-id");
}
/**
@@ -171,65 +190,57 @@ void deleteNotVisile() {
*/
@Test
void deleteLocked() {
- final CompanyOrg company = new CompanyOrg("ou=quarantine,ou=ing,ou=external,ou=people,dc=sample,dc=com", "quarantine");
+ final var company = new CompanyOrg("ou=quarantine,ou=ing,ou=external,ou=people,dc=sample,dc=com", "quarantine");
company.setLocked(true);
Mockito.when(companyRepository.findByIdExpected(DEFAULT_USER, "quarantine")).thenReturn(company);
- MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> {
- resource.delete("quarantine");
- }), "company", "locked");
+ MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> resource.delete("quarantine")), "company", "locked");
}
@Test
void deleteNotEmptyParent() {
- final CompanyOrg companyOrg1 = new CompanyOrg("ou=france,ou=people,dc=sample,dc=com", "france");
- final CompanyOrg companyOrg2 = new CompanyOrg("ou=ing-internal,ou=ing,ou=external,ou=people,dc=sample,dc=com", "ing-internal");
- final Map companies = new HashMap<>();
+ final var companyOrg1 = new CompanyOrg("ou=france,ou=people,dc=sample,dc=com", "france");
+ final var companyOrg2 = new CompanyOrg("ou=ing-internal,ou=ing,ou=external,ou=people,dc=sample,dc=com", "ing-internal");
+ final var companies = new HashMap();
companies.put("france", companyOrg1);
companies.put("ing-internal", companyOrg2);
- final Map users = new HashMap<>();
- final UserOrg user1 = new UserOrg();
+ final var users = new HashMap();
+ final var user1 = new UserOrg();
user1.setCompany("france");
users.put("user1", user1);
Mockito.when(userRepository.findAll()).thenReturn(users);
Mockito.when(companyRepository.findByIdExpected(DEFAULT_USER, "france")).thenReturn(companyOrg1);
Mockito.when(companyRepository.findAll()).thenReturn(companies);
- MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> {
- resource.delete("france");
- }), "company", "not-empty-company");
+ MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> resource.delete("france")), "company", "not-empty-company");
}
@Test
void createAlreadyExists() {
- final ContainerScope scope = containerScopeRepository.findByName("France");
- final ContainerEditionVo group = new ContainerEditionVo();
+ final var scope = containerScopeRepository.findByName("France");
+ final var group = new ContainerEditionVo();
group.setName("orange");
group.setScope(scope.getId());
Mockito.when(companyRepository.findById("orange")).thenReturn(new CompanyOrg("", ""));
- MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> {
- resource.create(group);
- }), "name", "already-exist");
+ MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> resource.create(group)), "name", "already-exist");
}
@Test
void createInvalidType() {
- final ContainerScope scope = containerScopeRepository.findByName("Fonction");
- final ContainerEditionVo company = new ContainerEditionVo();
+ final var scope = containerScopeRepository.findByName("Fonction");
+ final var company = new ContainerEditionVo();
company.setName("New-Ax-1-z:Z 0");
company.setScope(scope.getId());
- MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> {
- resource.create(company);
- }), "type", "container-scope-match");
+ MatcherUtil.assertThrows(Assertions.assertThrows(ValidationJsonException.class, () -> resource.create(company)), "type", "container-scope-match");
}
@Test
void create() {
- final ContainerScope scope = containerScopeRepository.findByName("France");
- final ContainerEditionVo company = new ContainerEditionVo();
+ final var scope = containerScopeRepository.findByName("France");
+ final var company = new ContainerEditionVo();
company.setName("new-company");
company.setScope(scope.getId());
- final CompanyOrg companyOrg1 = new CompanyOrg("ou=new-company,ou=france,ou=people,dc=sample,dc=com", "new-company");
+ final var companyOrg1 = new CompanyOrg("ou=new-company,ou=france,ou=people,dc=sample,dc=com", "new-company");
Mockito.when(companyRepository.create("ou=new-company,ou=france,ou=people,dc=sample,dc=com", "new-company"))
.thenReturn(companyOrg1);
Assertions.assertEquals("new-company", resource.create(company));
@@ -237,7 +248,7 @@ void create() {
@Test
void delete() {
- final CompanyOrg companyOrg1 = new CompanyOrg("ou=ligoj,ou=france,ou=people,dc=sample,dc=com", "ligoj");
+ final var companyOrg1 = new CompanyOrg("ou=ligoj,ou=france,ou=people,dc=sample,dc=com", "ligoj");
Mockito.when(companyRepository.findByIdExpected(DEFAULT_USER, "ligoj")).thenReturn(companyOrg1);
resource.delete("ligoj");
}
@@ -245,21 +256,21 @@ void delete() {
@Test
void findAllExternal() {
Mockito.when(
- companyRepository.findAll(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any()))
+ companyRepository.findAll(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any()))
.thenReturn(new PageImpl<>(Collections.emptyList()));
initSpringSecurityContext("mtuyer");
- final TableItem groups = resource.findAll(newUriInfoAscSearch("name", "ligoj"));
+ final var groups = resource.findAll(newUriInfoAscSearch("name", "ligoj"));
Assertions.assertEquals(0, groups.getRecordsTotal());
}
@Test
void findAll() {
- final CompanyOrg companyOrg1 = new CompanyOrg("ou=ligoj,ou=france,ou=people,dc=sample,dc=com", "ligoj");
- final CompanyOrg companyOrg2 = new CompanyOrg("ou=ing-internal,ou=ing,ou=external,ou=people,dc=sample,dc=com", "ing-internal");
+ final var companyOrg1 = new CompanyOrg("ou=ligoj,ou=france,ou=people,dc=sample,dc=com", "ligoj");
+ final var companyOrg2 = new CompanyOrg("ou=ing-internal,ou=ing,ou=external,ou=people,dc=sample,dc=com", "ing-internal");
companyOrg2.setLocked(true);
- final Map users = new HashMap<>();
- final UserOrg user1 = new UserOrg();
+ final var users = new HashMap();
+ final var user1 = new UserOrg();
user1.setCompany("france");
users.put("user1", user1);
final UserOrg user2 = new UserOrg();
@@ -269,12 +280,12 @@ void findAll() {
Mockito.when(userRepository.findAll()).thenReturn(users);
Mockito.when(
- companyRepository.findAll(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any()))
+ companyRepository.findAll(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any()))
.thenReturn(new PageImpl<>(Arrays.asList(companyOrg1, companyOrg2)));
- final TableItem groups = resource.findAll(newUriInfoAscSearch("name", "g"));
+ final var groups = resource.findAll(newUriInfoAscSearch("name", "g"));
Assertions.assertEquals(2, groups.getRecordsTotal());
- final ContainerCountVo group0 = groups.getData().get(0);
+ final var group0 = groups.getData().getFirst();
Assertions.assertEquals("ligoj", group0.getName());
Assertions.assertEquals(0, group0.getCount());
Assertions.assertEquals(0, group0.getCountVisible());
@@ -286,7 +297,7 @@ void findAll() {
Assertions.assertEquals(ContainerType.COMPANY, group0.getContainerType());
// No group type case
- final ContainerCountVo group2 = groups.getData().get(1);
+ final var group2 = groups.getData().get(1);
Assertions.assertEquals("ing-internal", group2.getName());
Assertions.assertEquals(1, group2.getCount());
Assertions.assertEquals(0, group2.getCountVisible());
@@ -301,9 +312,9 @@ void findAll() {
@Test
void isUserInternalCompanyExternal() {
initSpringSecurityContext("mlavoine");
- final UserOrg user = new UserOrg();
+ final var user = new UserOrg();
user.setCompany("ext");
- final CompanyOrg company = new CompanyOrg("ou=external,dc=sample,dc=com", "sub");
+ final var company = new CompanyOrg("ou=external,dc=sample,dc=com", "sub");
Mockito.when(userRepository.findById("mlavoine")).thenReturn(user);
Mockito.when(companyRepository.findById("ext")).thenReturn(company);
Mockito.when(userRepository.getPeopleInternalBaseDn()).thenReturn("ou=internal,dc=sample,dc=com");
@@ -321,7 +332,7 @@ void isUserInternalCompanyAny() {
@Test
void isUserInternalCompany() {
initSpringSecurityContext("mmartin");
- final UserOrg user = new UserOrg();
+ final var user = new UserOrg();
user.setCompany("sub");
final CompanyOrg company = new CompanyOrg("ou=sub,ou=internal,dc=sample,dc=com", "sub");
Mockito.when(userRepository.findById("mmartin")).thenReturn(user);
diff --git a/src/test/java/org/ligoj/app/plugin/id/resource/TestAbstractPluginIdResourceTest.java b/src/test/java/org/ligoj/app/plugin/id/resource/TestAbstractPluginIdResourceTest.java
index b2d9b15..8869746 100644
--- a/src/test/java/org/ligoj/app/plugin/id/resource/TestAbstractPluginIdResourceTest.java
+++ b/src/test/java/org/ligoj/app/plugin/id/resource/TestAbstractPluginIdResourceTest.java
@@ -297,14 +297,17 @@ void authenticateFailed() {
@Test
void authenticatePrimary() {
final var authentication = new UsernamePasswordAuthenticationToken(SECONDARY_LOGIN, "secret");
- Mockito.doReturn(true).when(userRepository).authenticate(SECONDARY_LOGIN, "secret");
- Assertions.assertSame(authentication, resource.authenticate(authentication, "service:id:test:node1", true));
+ final var user =new UserOrg();
+ user.setId(SECONDARY_LOGIN);
+ Mockito.doReturn(user).when(userRepository).authenticate(SECONDARY_LOGIN, "secret");
+ final var ressult = resource.authenticate(authentication, "service:id:test:node1", true);
+ Assertions.assertEquals(SECONDARY_LOGIN, ressult.getName());
}
@Test
void authenticateSecondary() {
final var authentication = new UsernamePasswordAuthenticationToken(SECONDARY_LOGIN, "secret");
- Mockito.doReturn(true).when(userRepository).authenticate(SECONDARY_LOGIN, "secret");
+ Mockito.doReturn(new UserOrg()).when(userRepository).authenticate(SECONDARY_LOGIN, "secret");
// Create a new IAM node plugged to the primary node
final var user = new UserOrg();