use of io.gravitee.am.service.model.NewOrganization in project gravitee-access-management by gravitee-io.
the class OrganizationServiceTest method shouldCreate_updateError.
@Test
public void shouldCreate_updateError() {
Organization existingOrganization = new Organization();
existingOrganization.setId(ORGANIZATION_ID);
when(organizationRepository.findById(ORGANIZATION_ID)).thenReturn(Maybe.just(existingOrganization));
when(organizationRepository.update(argThat(organization -> organization.getId().equals(ORGANIZATION_ID)))).thenReturn(Single.error(new TechnicalManagementException()));
NewOrganization newOrganization = new NewOrganization();
newOrganization.setName("TestName");
newOrganization.setDescription("TestDescription");
newOrganization.setDomainRestrictions(Collections.singletonList("TestDomainRestriction"));
DefaultUser createdBy = new DefaultUser("test");
createdBy.setId(USER_ID);
TestObserver<Organization> obs = cut.createOrUpdate(ORGANIZATION_ID, newOrganization, createdBy).test();
obs.awaitTerminalEvent();
obs.assertError(TechnicalManagementException.class);
verify(auditService, times(1)).report(argThat(builder -> {
Audit audit = builder.build(new ObjectMapper());
assertEquals(ReferenceType.ORGANIZATION, audit.getReferenceType());
assertEquals(ORGANIZATION_ID, audit.getReferenceId());
assertEquals(createdBy.getId(), audit.getActor().getId());
assertEquals(EventType.ORGANIZATION_UPDATED, audit.getType());
assertEquals(Status.FAILURE, audit.getOutcome().getStatus());
return true;
}));
}
use of io.gravitee.am.service.model.NewOrganization in project gravitee-access-management by gravitee-io.
the class OrganizationServiceTest method shouldCreate_update.
@Test
public void shouldCreate_update() {
Organization existingOrganization = new Organization();
existingOrganization.setId(ORGANIZATION_ID);
when(organizationRepository.findById(ORGANIZATION_ID)).thenReturn(Maybe.just(existingOrganization));
when(organizationRepository.update(argThat(organization -> organization.getId().equals(ORGANIZATION_ID)))).thenAnswer(i -> Single.just(i.getArgument(0)));
NewOrganization newOrganization = new NewOrganization();
newOrganization.setName("TestName");
newOrganization.setDescription("TestDescription");
newOrganization.setDomainRestrictions(Collections.singletonList("TestDomainRestriction"));
newOrganization.setHrids(Collections.singletonList("TestHridUpdate"));
DefaultUser createdBy = new DefaultUser("test");
createdBy.setId(USER_ID);
TestObserver<Organization> obs = cut.createOrUpdate(ORGANIZATION_ID, newOrganization, createdBy).test();
obs.awaitTerminalEvent();
obs.assertValue(organization -> {
assertEquals(ORGANIZATION_ID, organization.getId());
assertEquals(newOrganization.getName(), organization.getName());
assertEquals(newOrganization.getDescription(), organization.getDescription());
assertEquals(newOrganization.getDomainRestrictions(), organization.getDomainRestrictions());
assertEquals(newOrganization.getHrids(), organization.getHrids());
return true;
});
verify(auditService, times(1)).report(argThat(builder -> {
Audit audit = builder.build(new ObjectMapper());
assertEquals(ReferenceType.ORGANIZATION, audit.getReferenceType());
assertEquals(ORGANIZATION_ID, audit.getReferenceId());
assertEquals(createdBy.getId(), audit.getActor().getId());
assertEquals(EventType.ORGANIZATION_UPDATED, audit.getType());
assertEquals(Status.SUCCESS, audit.getOutcome().getStatus());
return true;
}));
}
use of io.gravitee.am.service.model.NewOrganization in project gravitee-access-management by gravitee-io.
the class OrganizationCommandHandlerTest method handle.
@Test
public void handle() {
OrganizationPayload organizationPayload = new OrganizationPayload();
OrganizationCommand command = new OrganizationCommand(organizationPayload);
organizationPayload.setId("orga#1");
organizationPayload.setHrids(Collections.singletonList("orga-1"));
organizationPayload.setDescription("Organization description");
organizationPayload.setName("Organization name");
organizationPayload.setDomainRestrictions(Arrays.asList("domain.restriction1.io", "domain.restriction2.io"));
when(organizationService.createOrUpdate(eq("orga#1"), argThat(newOrganization -> newOrganization.getHrids().equals(organizationPayload.getHrids()) && newOrganization.getDescription().equals(organizationPayload.getDescription()) && newOrganization.getName().equals(organizationPayload.getName()) && newOrganization.getDomainRestrictions().equals(organizationPayload.getDomainRestrictions())), isNull())).thenReturn(Single.just(new Organization()));
TestObserver<OrganizationReply> obs = cut.handle(command).test();
obs.awaitTerminalEvent();
obs.assertValue(reply -> reply.getCommandId().equals(command.getId()) && reply.getCommandStatus().equals(CommandStatus.SUCCEEDED));
}
use of io.gravitee.am.service.model.NewOrganization in project gravitee-access-management by gravitee-io.
the class OrganizationServiceTest method shouldCreate.
@Test
public void shouldCreate() {
when(organizationRepository.findById(ORGANIZATION_ID)).thenReturn(Maybe.empty());
when(organizationRepository.create(argThat(organization -> organization.getId().equals(ORGANIZATION_ID)))).thenAnswer(i -> Single.just(i.getArgument(0)));
when(roleService.createDefaultRoles(ORGANIZATION_ID)).thenReturn(Completable.complete());
when(entrypointService.createDefaults(any(Organization.class))).thenReturn(Flowable.just(new Entrypoint()));
NewOrganization newOrganization = new NewOrganization();
newOrganization.setName("TestName");
newOrganization.setDescription("TestDescription");
newOrganization.setDomainRestrictions(Collections.singletonList("TestDomainRestriction"));
newOrganization.setHrids(Collections.singletonList("testOrgHRID"));
DefaultUser createdBy = new DefaultUser("test");
createdBy.setId(USER_ID);
TestObserver<Organization> obs = cut.createOrUpdate(ORGANIZATION_ID, newOrganization, createdBy).test();
obs.awaitTerminalEvent();
obs.assertValue(organization -> {
assertEquals(ORGANIZATION_ID, organization.getId());
assertEquals(newOrganization.getName(), organization.getName());
assertEquals(newOrganization.getDescription(), organization.getDescription());
assertEquals(newOrganization.getDomainRestrictions(), organization.getDomainRestrictions());
assertEquals(newOrganization.getHrids(), organization.getHrids());
return true;
});
verify(auditService, times(1)).report(argThat(builder -> {
Audit audit = builder.build(new ObjectMapper());
assertEquals(ReferenceType.ORGANIZATION, audit.getReferenceType());
assertEquals(ORGANIZATION_ID, audit.getReferenceId());
assertEquals(createdBy.getId(), audit.getActor().getId());
assertEquals(EventType.ORGANIZATION_CREATED, audit.getType());
assertEquals(Status.SUCCESS, audit.getOutcome().getStatus());
return true;
}));
}
use of io.gravitee.am.service.model.NewOrganization in project gravitee-access-management by gravitee-io.
the class OrganizationServiceTest method shouldCreate_error.
@Test
public void shouldCreate_error() {
when(organizationRepository.findById(ORGANIZATION_ID)).thenReturn(Maybe.empty());
when(organizationRepository.create(argThat(organization -> organization.getId().equals(ORGANIZATION_ID)))).thenReturn(Single.error(new TechnicalManagementException()));
NewOrganization newOrganization = new NewOrganization();
newOrganization.setName("TestName");
newOrganization.setDescription("TestDescription");
newOrganization.setDomainRestrictions(Collections.singletonList("TestDomainRestriction"));
DefaultUser createdBy = new DefaultUser("test");
createdBy.setId(USER_ID);
TestObserver<Organization> obs = cut.createOrUpdate(ORGANIZATION_ID, newOrganization, createdBy).test();
obs.awaitTerminalEvent();
obs.assertError(TechnicalManagementException.class);
verify(auditService, times(1)).report(argThat(builder -> {
Audit audit = builder.build(new ObjectMapper());
assertEquals(ReferenceType.ORGANIZATION, audit.getReferenceType());
assertEquals(ORGANIZATION_ID, audit.getReferenceId());
assertEquals(createdBy.getId(), audit.getActor().getId());
assertEquals(EventType.ORGANIZATION_CREATED, audit.getType());
assertEquals(Status.FAILURE, audit.getOutcome().getStatus());
return true;
}));
}
Aggregations