Skip to content

Commit

Permalink
AYS-438 | Usage of boolean Variable Has Been Fixed in AysPermission
Browse files Browse the repository at this point in the history
… and `AysPermissionEntity` (#373)
  • Loading branch information
agitrubard authored Sep 11, 2024
1 parent 3eb7bfc commit 8164739
Show file tree
Hide file tree
Showing 10 changed files with 98 additions and 52 deletions.
6 changes: 5 additions & 1 deletion src/main/java/org/ays/auth/model/AysPermission.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ public class AysPermission extends BaseDomainModel {
private String id;
private String name;
private AysPermissionCategory category;
private boolean isSuper;
private Boolean isSuper;

public boolean isSuper() {
return isSuper;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ public class AysPermissionEntity extends BaseEntity {
private AysPermissionCategory category;

@Column(name = "IS_SUPER")
private boolean isSuper;
private Boolean isSuper;

}
85 changes: 85 additions & 0 deletions src/test/java/org/ays/auth/controller/AysRoleEndToEndTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,12 @@
import org.ays.auth.port.AysPermissionReadPort;
import org.ays.auth.port.AysRoleReadPort;
import org.ays.auth.port.AysRoleSavePort;
import org.ays.common.model.response.AysErrorResponse;
import org.ays.common.model.response.AysPageResponse;
import org.ays.common.model.response.AysResponse;
import org.ays.common.model.response.AysResponseBuilder;
import org.ays.common.util.AysRandomUtil;
import org.ays.common.util.exception.model.response.AysErrorResponseBuilder;
import org.ays.institution.model.Institution;
import org.ays.institution.model.InstitutionBuilder;
import org.ays.util.AysMockMvcRequestBuilders;
Expand Down Expand Up @@ -369,6 +372,40 @@ void givenValidRoleCreateRequest_whenRoleCreated_thenReturnSuccess() throws Exce
));
}

@Test
void givenRoleCreateRequest_whenRequestHasSuperPermissionsAndUserIsNotSuperAdmin_thenReturnBadRequestError() throws Exception {

// Initialize
List<AysPermission> permissions = permissionReadPort.findAll();
Set<String> permissionIds = permissions.stream()
.map(AysPermission::getId)
.collect(Collectors.toSet());

// Given
AysRoleCreateRequest createRequest = new AysRoleCreateRequestBuilder()
.withName(AysRandomUtil.generateText(10))
.withPermissionIds(permissionIds)
.build();

// Then
String endpoint = BASE_PATH.concat("/role");
MockHttpServletRequestBuilder mockHttpServletRequestBuilder = AysMockMvcRequestBuilders
.post(endpoint, adminToken.getAccessToken(), createRequest);

AysErrorResponse mockErrorResponse = AysErrorResponseBuilder.BAD_REQUEST;

aysMockMvc.perform(mockHttpServletRequestBuilder, mockErrorResponse)
.andExpect(AysMockResultMatchersBuilders.status()
.isBadRequest())
.andExpect(AysMockResultMatchersBuilders.subErrors()
.doesNotHaveJsonPath());

// Verify
Optional<AysRole> role = roleReadPort.findByName(createRequest.getName());

Assertions.assertFalse(role.isPresent());
}


@Test
void givenValidIdAndRoleUpdateRequest_whenSuperRoleUpdated_thenReturnSuccess() throws Exception {
Expand Down Expand Up @@ -476,6 +513,54 @@ void givenValidRoleUpdateRequest_whenRoleUpdated_thenReturnSuccess() throws Exce
));
}

@Test
void givenValidIdAndRoleUpdateRequest_whenRequestHasSuperPermissionsAndUserIsNotSuperAdmin_thenReturnBadRequestError() throws Exception {

// Initialize
List<AysPermission> permissions = permissionReadPort.findAll();
Set<String> permissionIds = permissions.stream()
.map(AysPermission::getId)
.collect(Collectors.toSet());

AysRole role = roleSavePort.save(
new AysRoleBuilder()
.withValidValues()
.withoutId()
.withName(AysRandomUtil.generateText(10))
.withPermissions(permissions)
.withInstitution(new InstitutionBuilder().withId(AysValidTestData.Admin.INSTITUTION_ID).build())
.build()
);

// Given
String id = role.getId();
AysRoleUpdateRequest updateRequest = new AysRoleUpdateRequestBuilder()
.withPermissionIds(permissionIds)
.build();

// Then
String endpoint = BASE_PATH.concat("/role/").concat(id);
MockHttpServletRequestBuilder mockHttpServletRequestBuilder = AysMockMvcRequestBuilders
.put(endpoint, adminToken.getAccessToken(), updateRequest);

AysErrorResponse mockErrorResponse = AysErrorResponseBuilder.BAD_REQUEST;

aysMockMvc.perform(mockHttpServletRequestBuilder, mockErrorResponse)
.andExpect(AysMockResultMatchersBuilders.status()
.isBadRequest())
.andExpect(AysMockResultMatchersBuilders.subErrors()
.doesNotHaveJsonPath());

// Verify
Optional<AysRole> roleFromDatabase = roleReadPort.findById(id);

Assertions.assertTrue(roleFromDatabase.isPresent());
Assertions.assertNotEquals(updateRequest.getName(), roleFromDatabase.get().getName());
Assertions.assertNull(roleFromDatabase.get().getUpdatedUser());
Assertions.assertNull(roleFromDatabase.get().getUpdatedAt());
}


@Test
void givenId_whenRoleActivated_thenReturnSuccess() throws Exception {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import org.ays.auth.model.enums.AdminRegistrationApplicationStatus;
import org.ays.common.model.TestDataBuilder;
import org.ays.common.util.AysRandomTestUtil;
import org.ays.common.util.AysRandomUtil;
import org.ays.institution.model.Institution;
import org.ays.institution.model.InstitutionBuilder;
Expand All @@ -27,7 +26,7 @@ public AdminRegistrationApplicationBuilder withValidValues() {
.withId(AysRandomUtil.generateUUID())
.withInstitution(institution)
.withUser(user)
.withReason(AysRandomTestUtil.generateString(41))
.withReason(AysRandomUtil.generateText(41))
.withStatus(AdminRegistrationApplicationStatus.WAITING);
}

Expand Down
2 changes: 1 addition & 1 deletion src/test/java/org/ays/auth/model/AysPermissionBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public AysPermissionBuilder withCategory(AysPermissionCategory category) {
}

public AysPermissionBuilder withIsSuper(boolean isSuper) {
data.setSuper(isSuper);
data.setIsSuper(isSuper);
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import org.ays.auth.model.enums.AdminRegistrationApplicationStatus;
import org.ays.common.model.TestDataBuilder;
import org.ays.common.util.AysRandomTestUtil;
import org.ays.common.util.AysRandomUtil;
import org.ays.institution.model.entity.InstitutionEntity;
import org.ays.institution.model.entity.InstitutionEntityBuilder;
Expand All @@ -27,7 +26,7 @@ public AdminRegistrationApplicationEntityBuilder withValidValues() {
.withStatus(AdminRegistrationApplicationStatus.WAITING)
.withUser(userEntity)
.withInstitution(institutionEntity)
.withReason(AysRandomTestUtil.generateString(41));
.withReason(AysRandomUtil.generateText(41));
}

public AdminRegistrationApplicationEntityBuilder withId(String id) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public AysPermissionEntityBuilder withCategory(AysPermissionCategory category) {
}

public AysPermissionEntityBuilder withIsSuper(boolean isSuper) {
data.setSuper(isSuper);
data.setIsSuper(isSuper);
return this;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.ays.auth.model.request;

import org.ays.common.model.TestDataBuilder;
import org.ays.common.util.AysRandomTestUtil;
import org.ays.common.util.AysRandomUtil;

public class AdminRegistrationApplicationCreateRequestBuilder extends TestDataBuilder<AdminRegistrationApplicationCreateRequest> {
Expand All @@ -13,7 +12,7 @@ public AdminRegistrationApplicationCreateRequestBuilder() {
public AdminRegistrationApplicationCreateRequestBuilder withValidValues() {
return this
.withInstitutionId(AysRandomUtil.generateUUID())
.withReason(AysRandomTestUtil.generateString(50));
.withReason(AysRandomUtil.generateText(50));
}

public AdminRegistrationApplicationCreateRequestBuilder withInstitutionId(String institutionId) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.ays.auth.model.request;

import org.ays.common.model.TestDataBuilder;
import org.ays.common.util.AysRandomTestUtil;
import org.ays.common.util.AysRandomUtil;

public class AdminRegistrationApplicationRejectRequestBuilder extends TestDataBuilder<AdminRegistrationApplicationRejectRequest> {

Expand All @@ -11,10 +11,9 @@ public AdminRegistrationApplicationRejectRequestBuilder() {

public AdminRegistrationApplicationRejectRequestBuilder withValidValues() {
return this
.withRejectReason(AysRandomTestUtil.generateString(50));
.withRejectReason(AysRandomUtil.generateText(50));
}


public AdminRegistrationApplicationRejectRequestBuilder withRejectReason(String rejectReason) {
data.setRejectReason(rejectReason);
return this;
Expand Down
39 changes: 0 additions & 39 deletions src/test/java/org/ays/common/util/AysRandomTestUtil.java

This file was deleted.

0 comments on commit 8164739

Please sign in to comment.