Skip to content

Commit 34fa092

Browse files
Add validation for empty reference name
1 parent 56e2452 commit 34fa092

File tree

3 files changed

+24
-9
lines changed

3 files changed

+24
-9
lines changed

ReferenceLibrary/src/main/java/referencelibrary/ui/command/AddReferenceCommand.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,19 @@ abstract class AddReferenceCommand extends Command {
2323
private void setReferenceName(Reference reference) {
2424
this.fieldValidator = new FieldValidator(reference);
2525
while(true) {
26-
String referenceName = io.readLine("Refererence id");
27-
if (fieldValidator.ReferenceNameIsUnique(
28-
referenceName, app.listReferences())) {
26+
String referenceName = io.readLine("Reference id");
27+
if (!fieldValidator.referenceNameIsUnique(referenceName, app.listReferences())) {
28+
io.print("There already exists a reference with the name " + referenceName
29+
+ "\nReference name must be unique.");
30+
}
31+
else if (!fieldValidator.referenceNameIsNotEmpty(referenceName)) {
32+
io.print("Reference name should not be empty.");
33+
}
34+
else {
2935
reference.setReferenceName(referenceName);
3036
break;
3137
}
32-
io.print("There already exists a reference with the name " + referenceName
33-
+ "\nReference name must be unique.");
34-
}
38+
}
3539
}
3640
/**
3741
* Prompts for reference fields, checks for duplicate reference names and stores the reference.

ReferenceLibrary/src/main/java/referencelibrary/util/FieldValidator.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,14 @@ public boolean fieldValueIsValid(String fieldValue) {
3737
return true;
3838
}
3939

40-
public boolean ReferenceNameIsUnique(String referenceName, List<Reference> referenceList) {
40+
public boolean referenceNameIsUnique(String referenceName, List<Reference> referenceList) {
4141
for (Reference reference : referenceList) {
4242
if(reference.getReferenceName().equalsIgnoreCase(referenceName)) return false;
4343
}
4444
return true;
4545
}
46+
47+
public boolean referenceNameIsNotEmpty(String referenceName) {
48+
return referenceName.trim().length() > 0;
49+
}
4650
}

ReferenceLibrary/src/test/java/referencelibrary/util/FieldValidatorTest.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,14 @@ public void testFieldValueIsValid() {
6262
public void testRefereceNameIsUnique() {
6363
ArrayList<Reference> references = new ArrayList();
6464
references.add(reference);
65-
assertEquals(true, fieldValidator.ReferenceNameIsUnique("newBook", references));
66-
assertEquals(false, fieldValidator.ReferenceNameIsUnique("book", references));
65+
assertEquals(true, fieldValidator.referenceNameIsUnique("newBook", references));
66+
assertEquals(false, fieldValidator.referenceNameIsUnique("book", references));
67+
}
68+
69+
@Test
70+
public void testReferenceNameIsNotEmpty() {
71+
String empty = "", whitespace = " ";
72+
assertFalse(fieldValidator.referenceNameIsNotEmpty(empty));
73+
assertFalse(fieldValidator.referenceNameIsNotEmpty(whitespace));
6774
}
6875
}

0 commit comments

Comments
 (0)