Skip to content

Commit 449c4bc

Browse files
committed
chore: adds common domain tests
1 parent d0d2849 commit 449c4bc

File tree

10 files changed

+105
-21
lines changed

10 files changed

+105
-21
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.codedifferently.studycrm.auth.domain;
2+
3+
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
4+
import org.springframework.context.annotation.ComponentScan;
5+
import org.springframework.context.annotation.Configuration;
6+
7+
@Configuration
8+
@EnableAutoConfiguration
9+
@ComponentScan
10+
public class AuthDomainConfiguration {}

auth-service/auth-service-domain/auth-domain-lib/src/main/java/com/codedifferently/studycrm/auth/domain/User.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import lombok.experimental.SuperBuilder;
88

99
@Entity
10-
@Table(name = "User")
10+
@Table(name = "crm_user")
1111
@Access(AccessType.FIELD)
1212
@Data
1313
@EqualsAndHashCode(callSuper = true)

auth-service/auth-service-domain/auth-domain-lib/src/test/java/com/codedifferently/studycrm/auth/domain/UserTest.java

+26
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,37 @@
33
import static org.junit.jupiter.api.Assertions.*;
44

55
import org.junit.jupiter.api.Test;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
8+
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
9+
import org.springframework.test.context.ContextConfiguration;
610

11+
@DataJpaTest
12+
@ContextConfiguration(classes = AuthDomainConfiguration.class)
713
class UserTest {
14+
15+
@Autowired private TestEntityManager entityManager;
16+
817
@Test
918
void someLibraryMethodReturnsTrue() {
1019
User classUnderTest = new User();
1120
assertTrue(classUnderTest.isAccountEnabled(), "getIsAccountEnabled should return 'true'");
1221
}
22+
23+
@Test
24+
void userPersists() {
25+
// Arrange
26+
var user = User.builder().username("user").email("email").password("password").build();
27+
28+
// Act
29+
var persistedUser = entityManager.persistFlushFind(user);
30+
31+
// Assert
32+
assertNotNull(persistedUser.getId());
33+
assertNotNull(persistedUser.getCreatedAt());
34+
assertNotNull(persistedUser.getUpdatedAt());
35+
assertEquals(user.getUsername(), persistedUser.getUsername());
36+
assertEquals(user.getEmail(), persistedUser.getEmail());
37+
assertEquals(user.getPassword(), persistedUser.getPassword());
38+
}
1339
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
spring:
2+
datasource:
3+
url: jdbc:h2:mem:mydb
4+
username: sa
5+
password: password
6+
driverClassName: org.h2.Driver
7+
jpa:
8+
spring.jpa.database-platform: org.hibernate.dialect.H2Dialect

build-logic/java-shared/src/main/kotlin/com.codedifferently.studycrm.java-shared.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ dependencies {
4545
testImplementation("org.mockito:mockito-core")
4646
testImplementation("org.junit.jupiter:junit-jupiter")
4747
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
48+
testRuntimeOnly("com.h2database:h2")
4849
}
4950

5051
tasks.test {

build-logic/java-web-application/src/main/kotlin/com.codedifferently.studycrm.java-web-application.gradle.kts

+3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ dependencies {
1515
implementation("io.eventuate.tram.core:eventuate-tram-spring-logging")
1616
implementation("io.eventuate.tram.springcloudsleuth:eventuate-tram-spring-cloud-sleuth-tram-starter")
1717

18+
implementation("org.flywaydb:flyway-core")
19+
implementation("org.flywaydb:flyway-mysql")
20+
1821
implementation("org.springframework.boot:spring-boot-starter-actuator")
1922
implementation("org.springframework.boot:spring-boot-starter-web")
2023
implementation("org.springframework.cloud:spring-cloud-starter-sleuth")

build-logic/spring-library/src/main/kotlin/com.codedifferently.studycrm.spring-library.gradle.kts

-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ dependencies {
77
implementation("jakarta.persistence:jakarta.persistence-api");
88
implementation("jakarta.transaction:jakarta.transaction-api");
99

10-
implementation("org.flywaydb:flyway-core")
11-
implementation("org.flywaydb:flyway-mysql")
12-
1310
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
1411
implementation("org.springframework.boot:spring-boot-starter-security")
1512
implementation("org.springframework.boot:spring-boot-starter-validation")

common/common-domain/common-domain-lib/src/main/java/com/codedifferently/studycrm/common/domain/RolePermission.java

+3-14
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,15 @@
55
import org.springframework.security.acls.model.Permission;
66

77
public enum RolePermission {
8-
READER(new CumulativePermission().set(BasePermission.READ)),
8+
READER(BasePermission.READ),
99

10-
EDITOR(
11-
new CumulativePermission()
12-
.set(RolePermission.READER.getPermission())
13-
.set(BasePermission.CREATE)
14-
.set(BasePermission.WRITE)),
10+
EDITOR(RolePermission.READER.getPermission(), BasePermission.CREATE, BasePermission.WRITE),
1511

1612
ADMIN(
17-
new CumulativePermission()
18-
.set(RolePermission.EDITOR.getPermission())
19-
.set(BasePermission.DELETE)
20-
.set(BasePermission.ADMINISTRATION));
13+
RolePermission.EDITOR.getPermission(), BasePermission.DELETE, BasePermission.ADMINISTRATION);
2114

2215
private final Permission cumulativePermission;
2316

24-
RolePermission(Permission permission) {
25-
this.cumulativePermission = new CumulativePermission().set(permission);
26-
}
27-
2817
RolePermission(Permission... permissions) {
2918
var cumulativePermission = new CumulativePermission();
3019
for (Permission permission : permissions) {

common/common-domain/common-domain-lib/src/test/java/com/codedifferently/studycrm/common/domain/EntityBaseTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/*
2-
* This Java source file was generated by the Gradle 'init' task.
3-
*/
41
package com.codedifferently.studycrm.common.domain;
52

63
import static org.junit.jupiter.api.Assertions.*;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.codedifferently.studycrm.common.domain;
2+
3+
import static org.junit.jupiter.api.Assertions.*;
4+
5+
import org.junit.jupiter.api.Test;
6+
import org.springframework.security.acls.domain.BasePermission;
7+
8+
class RolePermissionTest {
9+
static int READ_MASK = BasePermission.READ.getMask();
10+
static int CREATE_MASK = BasePermission.CREATE.getMask();
11+
static int WRITE_MASK = BasePermission.WRITE.getMask();
12+
static int DELETE_MASK = BasePermission.DELETE.getMask();
13+
static int ADMIN_MASK = BasePermission.ADMINISTRATION.getMask();
14+
15+
@Test
16+
void representsReaderPermissions() {
17+
// Act
18+
int mask = RolePermission.READER.getPermission().getMask();
19+
20+
// Assert
21+
assertTrue(0 < (mask & READ_MASK));
22+
assertTrue(0 == (mask & CREATE_MASK));
23+
assertTrue(0 == (mask & WRITE_MASK));
24+
assertTrue(0 == (mask & DELETE_MASK));
25+
assertTrue(0 == (mask & ADMIN_MASK));
26+
}
27+
28+
@Test
29+
void representsWriterPermissions() {
30+
// Act
31+
int mask = RolePermission.EDITOR.getPermission().getMask();
32+
33+
// Assert
34+
assertTrue(0 < (mask & READ_MASK));
35+
assertTrue(0 < (mask & CREATE_MASK));
36+
assertTrue(0 < (mask & WRITE_MASK));
37+
assertTrue(0 == (mask & DELETE_MASK));
38+
assertTrue(0 == (mask & ADMIN_MASK));
39+
}
40+
41+
@Test
42+
void representsAdminPermissions() {
43+
// Act
44+
int mask = RolePermission.ADMIN.getPermission().getMask();
45+
46+
// Assert
47+
assertTrue(0 < (mask & READ_MASK));
48+
assertTrue(0 < (mask & CREATE_MASK));
49+
assertTrue(0 < (mask & WRITE_MASK));
50+
assertTrue(0 < (mask & DELETE_MASK));
51+
assertTrue(0 < (mask & ADMIN_MASK));
52+
}
53+
}

0 commit comments

Comments
 (0)