Search in sources :

Example 21 with Page

use of io.gravitee.am.model.common.Page in project gravitee-access-management by gravitee-io.

the class OrganizationUserRepositoryTest method testSearch_strict.

private void testSearch_strict(String query) {
    final String organization = "organization";
    // create user
    User user = new User();
    user.setReferenceType(ReferenceType.ORGANIZATION);
    user.setReferenceId(organization);
    user.setFirstName("firstName");
    user.setLastName("lastName");
    user.setDisplayName("displayName");
    user.setUsername("testUsername");
    user.setEmail("user.name@mail.com");
    organizationUserRepository.create(user).blockingGet();
    User user2 = new User();
    user2.setReferenceType(ReferenceType.ORGANIZATION);
    user2.setReferenceId(organization);
    user2.setFirstName("firstName2");
    user2.setLastName("lastName2");
    user2.setDisplayName("displayName2");
    user2.setUsername("testUsername2");
    user2.setEmail("user.name@mail.com2");
    organizationUserRepository.create(user2).blockingGet();
    // fetch user
    TestObserver<Page<User>> testObserver = organizationUserRepository.search(ReferenceType.ORGANIZATION, organization, query, 0, 10).test();
    testObserver.awaitTerminalEvent();
    testObserver.assertComplete();
    testObserver.assertNoErrors();
    testObserver.assertValue(users -> users.getData().size() == 1);
    testObserver.assertValue(users -> users.getData().iterator().next().getUsername().equals(user.getUsername()));
}
Also used : User(io.gravitee.am.model.User) Page(io.gravitee.am.model.common.Page)

Example 22 with Page

use of io.gravitee.am.model.common.Page in project gravitee-access-management by gravitee-io.

the class OrganizationUserRepositoryTest method testScimSearch_byGivenName_NE_paged.

@Test
public void testScimSearch_byGivenName_NE_paged() {
    final String organization = "organization";
    // create user
    User user1 = new User();
    user1.setReferenceType(ReferenceType.ORGANIZATION);
    user1.setReferenceId(organization);
    user1.setUsername("testUsername1");
    user1.setAdditionalInformation(Collections.singletonMap("given_name", "gname1"));
    organizationUserRepository.create(user1).blockingGet();
    User user2 = new User();
    user2.setReferenceType(ReferenceType.ORGANIZATION);
    user2.setReferenceId(organization);
    user2.setUsername("testUsername2");
    user2.setAdditionalInformation(Collections.singletonMap("given_name", "theother"));
    organizationUserRepository.create(user2).blockingGet();
    FilterCriteria criteria = new FilterCriteria();
    criteria.setFilterName("name.givenName");
    criteria.setFilterValue("gname1");
    criteria.setOperator("ne");
    criteria.setQuoteFilterValue(true);
    TestObserver<Page<User>> testObserverP0 = organizationUserRepository.search(ReferenceType.ORGANIZATION, organization, criteria, 0, 4).test();
    testObserverP0.awaitTerminalEvent();
    testObserverP0.assertComplete();
    testObserverP0.assertNoErrors();
    testObserverP0.assertValue(users -> users.getData().size() == 1);
    testObserverP0.assertValue(users -> users.getData().iterator().next().getUsername().equals(user2.getUsername()));
}
Also used : User(io.gravitee.am.model.User) Page(io.gravitee.am.model.common.Page) FilterCriteria(io.gravitee.am.repository.management.api.search.FilterCriteria) Test(org.junit.Test) AbstractManagementTest(io.gravitee.am.repository.management.AbstractManagementTest)

Example 23 with Page

use of io.gravitee.am.model.common.Page in project gravitee-access-management by gravitee-io.

the class DomainNotificationServiceTest method shouldNotifyUserFromGroup.

@Test
public void shouldNotifyUserFromGroup() throws Exception {
    final Membership member = new Membership();
    member.setMemberType(MemberType.GROUP);
    member.setMemberId("groupId");
    when(membershipService.findByCriteria(eq(ReferenceType.DOMAIN), eq(DOMAIN_ID), any())).thenReturn(Flowable.just(member), Flowable.empty());
    final List<User> tenUsers = IntStream.range(0, 10).mapToObj(x -> {
        final User user = new User();
        user.setId("" + x);
        user.setEmail(x + "@acme.fr");
        return user;
    }).collect(Collectors.toList());
    final User singleUser = new User();
    singleUser.setId("single");
    singleUser.setEmail("single@acme.fr");
    when(groupService.findMembers(any(), any(), any(), anyInt(), anyInt())).thenReturn(Single.just(new Page<>(tenUsers, 0, 11)), Single.just(new Page<>(Arrays.asList(singleUser), 1, 11)));
    when(emailService.getFinalEmail(any(), any(), any(), any(), any())).thenReturn(new Email());
    cut.registerCertificateExpiration(certificate);
    // wait subscription execution
    Thread.sleep(1000);
    verify(notifierService, times(11)).register(any(), any(), any());
    verify(userService, never()).findById(any(), any(), any());
}
Also used : IntStream(java.util.stream.IntStream) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) Certificate(io.gravitee.am.model.Certificate) EnvironmentService(io.gravitee.am.service.EnvironmentService) DomainNotifierServiceImpl(io.gravitee.am.management.service.impl.DomainNotifierServiceImpl) Arrays(java.util.Arrays) SystemRole(io.gravitee.am.model.permissions.SystemRole) Mock(org.mockito.Mock) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) Role(io.gravitee.am.model.Role) Maybe(io.reactivex.Maybe) RunWith(org.junit.runner.RunWith) DomainService(io.gravitee.am.service.DomainService) Environment(io.gravitee.am.model.Environment) Mockito.argThat(org.mockito.Mockito.argThat) Single(io.reactivex.Single) Flowable(io.reactivex.Flowable) After(org.junit.After) Email(io.gravitee.am.common.email.Email) ReferenceType(io.gravitee.am.model.ReferenceType) User(io.gravitee.am.model.User) GroupService(io.gravitee.am.service.GroupService) MembershipService(io.gravitee.am.service.MembershipService) Before(org.junit.Before) InjectMocks(org.mockito.InjectMocks) RoleService(io.gravitee.am.service.RoleService) NotifierService(io.gravitee.node.api.notifier.NotifierService) Page(io.gravitee.am.model.common.Page) MemberType(io.gravitee.am.model.membership.MemberType) TYPE_EMAIL_NOTIFIER(io.gravitee.am.management.service.impl.notifications.NotificationDefinitionUtils.TYPE_EMAIL_NOTIFIER) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) ReflectionTestUtils(org.springframework.test.util.ReflectionTestUtils) Domain(io.gravitee.am.model.Domain) Test(org.junit.Test) Mockito.times(org.mockito.Mockito.times) DefaultRole(io.gravitee.am.model.permissions.DefaultRole) UUID(java.util.UUID) Mockito.when(org.mockito.Mockito.when) Membership(io.gravitee.am.model.Membership) Collectors(java.util.stream.Collectors) Mockito.verify(org.mockito.Mockito.verify) List(java.util.List) Mockito.never(org.mockito.Mockito.never) OrganizationUserService(io.gravitee.am.service.OrganizationUserService) Mockito.anyInt(org.mockito.Mockito.anyInt) MockitoJUnitRunner(org.mockito.junit.MockitoJUnitRunner) EmailNotifierConfiguration(io.gravitee.am.management.service.impl.notifications.EmailNotifierConfiguration) TYPE_UI_NOTIFIER(io.gravitee.am.management.service.impl.notifications.NotificationDefinitionUtils.TYPE_UI_NOTIFIER) User(io.gravitee.am.model.User) Email(io.gravitee.am.common.email.Email) Membership(io.gravitee.am.model.Membership) Page(io.gravitee.am.model.common.Page) Test(org.junit.Test)

Example 24 with Page

use of io.gravitee.am.model.common.Page in project gravitee-access-management by gravitee-io.

the class UserRepositoryTest method testSearch_byUsername_paged.

@Test
public void testSearch_byUsername_paged() {
    final String domain = "domain";
    // create user
    User user1 = new User();
    user1.setReferenceType(ReferenceType.DOMAIN);
    user1.setReferenceId(domain);
    user1.setUsername("testUsername1");
    userRepository.create(user1).blockingGet();
    User user2 = new User();
    user2.setReferenceType(ReferenceType.DOMAIN);
    user2.setReferenceId(domain);
    user2.setUsername("testUsername2");
    userRepository.create(user2).blockingGet();
    User user3 = new User();
    user3.setReferenceType(ReferenceType.DOMAIN);
    user3.setReferenceId(domain);
    user3.setUsername("testUsername3");
    userRepository.create(user3).blockingGet();
    // fetch user (page 0)
    TestObserver<Page<User>> testObserverP0 = userRepository.search(ReferenceType.DOMAIN, domain, "testUsername*", 0, 2).test();
    testObserverP0.awaitTerminalEvent();
    testObserverP0.assertComplete();
    testObserverP0.assertNoErrors();
    testObserverP0.assertValue(users -> users.getData().size() == 2);
    testObserverP0.assertValue(users -> {
        Iterator<User> it = users.getData().iterator();
        return it.next().getUsername().equals(user1.getUsername()) && it.next().getUsername().equals(user2.getUsername());
    });
    // fetch user (page 1)
    TestObserver<Page<User>> testObserverP1 = userRepository.search(ReferenceType.DOMAIN, domain, "testUsername*", 1, 2).test();
    testObserverP1.awaitTerminalEvent();
    testObserverP1.assertComplete();
    testObserverP1.assertNoErrors();
    testObserverP1.assertValue(users -> users.getData().size() == 1);
    testObserverP1.assertValue(users -> users.getData().iterator().next().getUsername().equals(user3.getUsername()));
}
Also used : User(io.gravitee.am.model.User) Page(io.gravitee.am.model.common.Page) AbstractManagementTest(io.gravitee.am.repository.management.AbstractManagementTest) Test(org.junit.Test)

Example 25 with Page

use of io.gravitee.am.model.common.Page in project gravitee-access-management by gravitee-io.

the class UserRepositoryTest method testSearch_wildcard.

private void testSearch_wildcard(String query) {
    final String domain = "domain";
    // create user
    User user = new User();
    user.setReferenceType(ReferenceType.DOMAIN);
    user.setReferenceId(domain);
    user.setFirstName("firstName");
    user.setLastName("lastName");
    user.setDisplayName("displayName");
    user.setUsername("testUsername");
    user.setEmail("user.name@mail.com");
    userRepository.create(user).blockingGet();
    User user2 = new User();
    user2.setReferenceType(ReferenceType.DOMAIN);
    user2.setReferenceId(domain);
    user2.setFirstName("firstName2");
    user2.setLastName("lastName2");
    user2.setDisplayName("displayName2");
    user2.setUsername("testUsername2");
    user2.setEmail("user.name@mail.com2");
    userRepository.create(user2).blockingGet();
    // fetch user
    TestObserver<Page<User>> testObserver = userRepository.search(ReferenceType.DOMAIN, domain, query, 0, 10).test();
    testObserver.awaitTerminalEvent();
    testObserver.assertComplete();
    testObserver.assertNoErrors();
    testObserver.assertValue(users -> users.getData().size() == 2);
}
Also used : User(io.gravitee.am.model.User) Page(io.gravitee.am.model.common.Page)

Aggregations

Page (io.gravitee.am.model.common.Page)68 Test (org.junit.Test)51 User (io.gravitee.am.model.User)29 AbstractManagementTest (io.gravitee.am.repository.management.AbstractManagementTest)26 FilterCriteria (io.gravitee.am.repository.management.api.search.FilterCriteria)16 Autowired (org.springframework.beans.factory.annotation.Autowired)14 Maybe (io.reactivex.Maybe)12 Single (io.reactivex.Single)12 ReferenceType (io.gravitee.am.model.ReferenceType)11 Flowable (io.reactivex.Flowable)11 Response (javax.ws.rs.core.Response)11 Domain (io.gravitee.am.model.Domain)10 List (java.util.List)10 Application (io.gravitee.am.model.Application)9 Scope (io.gravitee.am.model.oauth2.Scope)8 Completable (io.reactivex.Completable)8 LocalDateTime (java.time.LocalDateTime)8 InitializingBean (org.springframework.beans.factory.InitializingBean)8 Criteria.where (org.springframework.data.relational.core.query.Criteria.where)8 Query (org.springframework.data.relational.core.query.Query)8