From ab368c2fb2179548d98f7cf6fe8dcfafcb9bf37a Mon Sep 17 00:00:00 2001 From: mark79-github <52877024+mark79-github@users.noreply.github.com> Date: Mon, 15 Sep 2025 08:38:04 +0300 Subject: [PATCH 1/3] Add UserBaseModel abstract class --- .../invoice/model/base/UserBaseModel.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/main/java/bg/softuni/invoice/model/base/UserBaseModel.java diff --git a/src/main/java/bg/softuni/invoice/model/base/UserBaseModel.java b/src/main/java/bg/softuni/invoice/model/base/UserBaseModel.java new file mode 100644 index 0000000..2e932d8 --- /dev/null +++ b/src/main/java/bg/softuni/invoice/model/base/UserBaseModel.java @@ -0,0 +1,50 @@ +package bg.softuni.invoice.model.base; + +public abstract class UserBaseModel { + + private String id; + private String username; + private String firstName; + private String lastName; + private boolean enabled; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } +} From 370d1b3ad3abf0309c410ca765fa66af294d8f59 Mon Sep 17 00:00:00 2001 From: mark79-github <52877024+mark79-github@users.noreply.github.com> Date: Mon, 15 Sep 2025 08:38:28 +0300 Subject: [PATCH 2/3] Refactor UserViewModel and UserServiceModel to extend UserBaseModel and remove duplicate fields --- .../model/service/UserServiceModel.java | 55 ++----------------- .../invoice/model/view/UserViewModel.java | 52 ++---------------- 2 files changed, 9 insertions(+), 98 deletions(-) diff --git a/src/main/java/bg/softuni/invoice/model/service/UserServiceModel.java b/src/main/java/bg/softuni/invoice/model/service/UserServiceModel.java index e3cfe7d..ef05794 100644 --- a/src/main/java/bg/softuni/invoice/model/service/UserServiceModel.java +++ b/src/main/java/bg/softuni/invoice/model/service/UserServiceModel.java @@ -1,53 +1,14 @@ package bg.softuni.invoice.model.service; +import bg.softuni.invoice.model.base.UserBaseModel; + import java.util.HashSet; import java.util.Set; -public class UserServiceModel { +public class UserServiceModel extends UserBaseModel { - private String id; - private String username; - private String firstName; - private String lastName; private String password; - private Set authorities; - private boolean enabled; - - public UserServiceModel() { - setAuthorities(new HashSet<>()); - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } + private Set authorities = new HashSet<>(); public String getPassword() { return password; @@ -64,12 +25,4 @@ public Set getAuthorities() { public void setAuthorities(Set authorities) { this.authorities = authorities; } - - public boolean isEnabled() { - return enabled; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } } diff --git a/src/main/java/bg/softuni/invoice/model/view/UserViewModel.java b/src/main/java/bg/softuni/invoice/model/view/UserViewModel.java index c648568..e330762 100644 --- a/src/main/java/bg/softuni/invoice/model/view/UserViewModel.java +++ b/src/main/java/bg/softuni/invoice/model/view/UserViewModel.java @@ -1,47 +1,13 @@ package bg.softuni.invoice.model.view; -import java.util.Set; - -public class UserViewModel { - - private String id; - private String username; - private String firstName; - private String lastName; - private Set authorities; - private boolean enabled; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } +import bg.softuni.invoice.model.base.UserBaseModel; - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } +import java.util.HashSet; +import java.util.Set; - public String getLastName() { - return lastName; - } +public class UserViewModel extends UserBaseModel { - public void setLastName(String lastName) { - this.lastName = lastName; - } + private Set authorities = new HashSet<>(); public Set getAuthorities() { return authorities; @@ -50,12 +16,4 @@ public Set getAuthorities() { public void setAuthorities(Set authorities) { this.authorities = authorities; } - - public boolean isEnabled() { - return enabled; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } } From c5f6d68544daa7cc8d98ee0fae3865319e47a1c7 Mon Sep 17 00:00:00 2001 From: mark79-github <52877024+mark79-github@users.noreply.github.com> Date: Mon, 15 Sep 2025 08:38:44 +0300 Subject: [PATCH 3/3] Update UserViewModelTest to assert non-null and empty authorities --- .../bg/softuni/invoice/model/view/UserViewModelTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/test/java/bg/softuni/invoice/model/view/UserViewModelTest.java b/src/test/java/bg/softuni/invoice/model/view/UserViewModelTest.java index ada12cb..c9ea25b 100644 --- a/src/test/java/bg/softuni/invoice/model/view/UserViewModelTest.java +++ b/src/test/java/bg/softuni/invoice/model/view/UserViewModelTest.java @@ -7,6 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -152,12 +153,13 @@ void authorities_withValidValue_shouldReturnCorrectAuthorities() { } @Test - void authorities_whenNotSet_shouldReturnNull() { + void authorities_whenNotSet_shouldReturnEmptyCollection() { UserViewModel userViewModel = new UserViewModel(); Set actualAuthorities = userViewModel.getAuthorities(); - assertNull(actualAuthorities); + assertNotNull(actualAuthorities); + assertTrue(actualAuthorities.isEmpty()); } @Test