Skip to content

Commit bc63c83

Browse files
committed
refactor: applying best code practices
1 parent ec68e03 commit bc63c83

File tree

7 files changed

+61
-48
lines changed

7 files changed

+61
-48
lines changed

.idea/sonarlint/issuestore/1/0/1035b95fde851fd8381dabb4da89dd79908aed9b

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/sonarlint/issuestore/5/8/5879b52636e240d2cfcbd5e54543d3959f957811

Lines changed: 0 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/java/io/github/multiform_validator/Utils.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,21 @@ private Utils() {
2323
* Options for the getOnlyEmail method.
2424
*/
2525
public static class GetOnlyEmailOptionsParams {
26-
public Boolean multiple = false;
27-
public Object cleanDomain = false;
28-
public Boolean repeatEmail = false;
26+
private Boolean multiple = false;
27+
private Object cleanDomain = false;
28+
private Boolean repeatEmail = false;
29+
30+
public void setMultiple(Boolean multiple) {
31+
this.multiple = multiple;
32+
}
33+
34+
public void setCleanDomain(Object cleanDomain) {
35+
this.cleanDomain = cleanDomain;
36+
}
37+
38+
public void setRepeatEmail(Boolean repeatEmail) {
39+
this.repeatEmail = repeatEmail;
40+
}
2941
}
3042

3143
private static final GetOnlyEmailOptionsParams getOnlyEmailDefaultOptionsParams = new GetOnlyEmailOptionsParams();

src/main/java/io/github/multiform_validator/Validate.java

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ private Validate() {
1717
// ##############################################################################################################
1818
// ##############################################################################################################
1919
// validateEmail
20-
20+
2121
/**
2222
* The default list of valid email domains.
2323
*/
@@ -39,10 +39,26 @@ private Validate() {
3939
* The ValidateEmailOptionsParams class represents the options for email validation.
4040
*/
4141
public static class ValidateEmailOptionsParams {
42-
public int maxLength = 400;
43-
public String country = "";
44-
public boolean validDomains = false;
45-
public List<String> validDomainsList = new ArrayList<>();
42+
private int maxLength = 400;
43+
private String country = "";
44+
private boolean validDomains = false;
45+
private List<String> validDomainsList = new ArrayList<>();
46+
47+
public void setMaxLength(int maxLength) {
48+
this.maxLength = maxLength;
49+
}
50+
51+
public void setCountry(String country) {
52+
this.country = country;
53+
}
54+
55+
public void setValidDomains(boolean validDomains) {
56+
this.validDomains = validDomains;
57+
}
58+
59+
public void setValidDomainsList(List<String> validDomainsList) {
60+
this.validDomainsList = validDomainsList;
61+
}
4662
}
4763

4864
// Default options for email validation
@@ -62,7 +78,7 @@ public static boolean validateEmail(String email) {
6278
/**
6379
* Validates an email address using the specified options.
6480
*
65-
* @param email The email address to validate.
81+
* @param email The email address to validate.
6682
* @param options The options for email validation.
6783
* @return true if the email address is valid, false otherwise.
6884
* @throws IllegalArgumentException if the input value is empty or if both validDomains and validDomainsList are used at the same time.

src/test/java/UtilsTest.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,54 +22,54 @@ void testGetOnlyEmail() {
2222

2323
// Test with multiple emails
2424
Utils.GetOnlyEmailOptionsParams options1 = new Utils.GetOnlyEmailOptionsParams();
25-
options1.multiple = true;
25+
options1.setMultiple(true);
2626
assertEquals(
2727
new ArrayList<>(Arrays.asList("test1@example.com", "test2@example.com")),
2828
Utils.getOnlyEmail("This is a sample text with emails test1@example.com and test2@example.com", options1)
2929
);
3030

3131
// Test with multiple emails and clean domain
3232
Utils.GetOnlyEmailOptionsParams options2 = new Utils.GetOnlyEmailOptionsParams();
33-
options2.multiple = true;
34-
options2.cleanDomain = true;
33+
options2.setMultiple(true);
34+
options2.setCleanDomain(true);
3535
assertEquals(
3636
new ArrayList<>(Arrays.asList("test1@example.com", "test2@example.com")),
3737
Utils.getOnlyEmail("This is a sample text with emails test1@example.comAWODI test2@example.comAWDOI awwdawd", options2)
3838
);
3939

4040
// Test with multiple emails and clean domain and repeat email
4141
Utils.GetOnlyEmailOptionsParams options3 = new Utils.GetOnlyEmailOptionsParams();
42-
options3.multiple = true;
43-
options3.cleanDomain = true;
44-
options3.repeatEmail = true;
42+
options3.setMultiple(true);
43+
options3.setCleanDomain(true);
44+
options3.setRepeatEmail(true);
4545
assertEquals(
4646
new ArrayList<>(Arrays.asList("test1@example.com", "test1@example.com", "test2@example.com")),
4747
Utils.getOnlyEmail("This is a sample text with emails test1@example.comASD test1@example.comASD blabla test2@example.com", options3)
4848
);
4949

5050
// Test with multiple emails and repeated email however repeatEmail is false
5151
Utils.GetOnlyEmailOptionsParams options4 = new Utils.GetOnlyEmailOptionsParams();
52-
options4.multiple = true;
53-
options4.cleanDomain = true;
54-
options4.repeatEmail = false;
52+
options4.setMultiple(true);
53+
options4.setCleanDomain(true);
54+
options4.setRepeatEmail(false);
5555
assertEquals(
5656
new ArrayList<>(Arrays.asList("test1@example.com", "test2@example.com")),
5757
Utils.getOnlyEmail("vails test1@example.comASD test1@example.comASD blabla test2@example.com", options4)
5858
);
5959

6060
// Test with clean domain as false
6161
Utils.GetOnlyEmailOptionsParams options5 = new Utils.GetOnlyEmailOptionsParams();
62-
options5.multiple = true;
63-
options5.cleanDomain = false;
62+
options5.setMultiple(true);
63+
options5.setCleanDomain(false);
6464
assertEquals(
6565
new ArrayList<>(Arrays.asList("test1@example.comAAA", "test2@example.com.br")),
6666
Utils.getOnlyEmail("vails test1@example.comAAA , test2@example.com.br yes no", options5)
6767
);
6868

6969
// Test passing own clean domain
7070
Utils.GetOnlyEmailOptionsParams options6 = new Utils.GetOnlyEmailOptionsParams();
71-
options6.multiple = true;
72-
options6.cleanDomain = Collections.singletonList(".own");
71+
options6.setMultiple(true);
72+
options6.setCleanDomain(Collections.singletonList(".own"));
7373
assertEquals(
7474
new ArrayList<>(Arrays.asList("test1@com.own", "test2@com.own")),
7575
Utils.getOnlyEmail("vails test1@com.ownASDAW , test2@com.ownyes no", options6)

src/test/java/ValidateTest.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
import io.github.multiform_validator.Validate.ValidateEmailOptionsParams;
33
import org.junit.jupiter.api.Test;
44

5+
import java.util.Collections;
6+
57
import static org.junit.jupiter.api.Assertions.*;
68

79
class ValidateTest {
@@ -19,37 +21,37 @@ void testValidateEmail() {
1921

2022
// Test with maxLength option
2123
ValidateEmailOptionsParams options1 = new ValidateEmailOptionsParams();
22-
options1.maxLength = 10;
24+
options1.setMaxLength(10);
2325
assertFalse(Validate.validateEmail("foo@gmail.com", options1));
2426

2527
// Test with country option
2628
ValidateEmailOptionsParams options2 = new ValidateEmailOptionsParams();
27-
options2.maxLength = 400;
28-
options2.country = "br";
29+
options2.setMaxLength(400);
30+
options2.setCountry("br");
2931
assertTrue(Validate.validateEmail("foo@gmail.com.br", options2));
3032
assertFalse(Validate.validateEmail("foo@gmail.org", options2));
3133

3234
// Test with validDomains option
3335
ValidateEmailOptionsParams options3 = new ValidateEmailOptionsParams();
34-
options3.validDomains = true;
36+
options3.setValidDomains(true);
3537
assertTrue(Validate.validateEmail("foo@gmail.com", options3));
3638
assertFalse(Validate.validateEmail("foo@bar.com", options3));
3739

3840
// Test with validDomainsList option
3941
ValidateEmailOptionsParams options4 = new ValidateEmailOptionsParams();
40-
options4.validDomainsList.add("@voicemail.com");
42+
options4.setValidDomainsList(Collections.singletonList("@voicemail.com"));
4143
assertTrue(Validate.validateEmail("foo@voicemail.com", options4));
4244
assertFalse(Validate.validateEmail("foo@gmail.com", options4));
4345

4446
// Test with validDomains and validDomainsList options at the same time
4547
ValidateEmailOptionsParams options5 = new ValidateEmailOptionsParams();
46-
options5.validDomains = true;
47-
options5.validDomainsList.add("@voicemail.com");
48+
options5.setValidDomains(true);
49+
options5.setValidDomainsList(Collections.singletonList("@voicemail.com"));
4850
assertThrows(IllegalArgumentException.class, () -> Validate.validateEmail("foo@gmail.com", options5));
4951

5052
// Test with invalid domain
5153
ValidateEmailOptionsParams options6 = new ValidateEmailOptionsParams();
52-
options6.validDomains = true;
54+
options6.setValidDomains(true);
5355
assertFalse(Validate.validateEmail("foo@bar.com", options6));
5456
}
5557

0 commit comments

Comments
 (0)