Skip to content

Commit

Permalink
Merge pull request AY2324S2-CS2103T-F12-2#249 from Howlong11/branch-e…
Browse files Browse the repository at this point in the history
…-linkTest

test class for link class
  • Loading branch information
Murugan-Maniish authored Apr 15, 2024
2 parents 11c39e2 + 3b10b1f commit a38f6a4
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/main/java/seedu/address/model/article/Link.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ public class Link {
public final String link;

/**
* Constructs a {@code Title}.
* Constructs a {@code Link}.
*
* @param link A valid title.
* @param link A valid link.
*/
public Link(String link) {
if (link == null) {
Expand Down
80 changes: 80 additions & 0 deletions src/test/java/seedu/address/model/article/LinkTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package seedu.address.model.article;

import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static seedu.address.testutil.Assert.assertThrows;

import org.junit.jupiter.api.Test;

public class LinkTest {

@Test
public void constructor_null_createsEmptyLink() {
assertTrue(new Link("").equals(new Link(null)));
}

@Test
public void constructor_invalidLink_throwsIllegalArgumentException() {
String invalidLink = " ";
assertThrows(IllegalArgumentException.class, () -> new Link(invalidLink));
}

@Test
public void isValidLink() {
//null Link
assertThrows(NullPointerException.class, () -> Link.isValidLink(null));

// blank Link
assertTrue(Link.isValidLink("")); // empty string

// whitespaces only
assertFalse(Link.isValidLink(" ")); // space only
assertFalse(Link.isValidLink(" ")); // multiple spaces only

// whitespaces in Link
assertTrue(Link.isValidLink("mylink ")); // trailing space
assertTrue(Link.isValidLink("mylink ")); // multiple trailing spaces
assertTrue(Link.isValidLink("my link")); // middle space
assertTrue(Link.isValidLink("my link")); // multiple middle spaces

// invalid Links
assertFalse(Link.isValidLink(" mylink")); // leading space
assertFalse(Link.isValidLink(" mylink")); // multiple leading spaces

// valid Links
assertTrue(Link.isValidLink("mylink")); // alphabets only
assertTrue(Link.isValidLink("12345")); // numbers only
assertTrue(Link.isValidLink("my link")); // alphabets with space
assertTrue(Link.isValidLink("123 45")); // numbers with space
assertTrue(Link.isValidLink("my link 123")); // alphanumeric with spaces
assertTrue(Link.isValidLink("~!@#$%^&*()_+`-={}|[]:,.?/;" + "\"")); // special characters only
assertTrue(Link.isValidLink("~!@#$%^&* ()_+`-={}|[]:,.?/;" + " \"")); // special characters with spaces
assertTrue(Link.isValidLink("my link: 123")); // alphanumeric with special characters and spaces
assertTrue(Link.isValidLink("my link: 123 ")); // alphanumeric with special characters and trailing space
assertTrue(Link.isValidLink("试试看")); // non-english unicode characters
assertTrue(Link.isValidLink("试试 看")); // non-english unicode characters with space
assertTrue(Link.isValidLink("试试看 123")); // non-english unicode characters with numbers and space
assertTrue(Link.isValidLink("试试看: #123@")); // unicode characters with special characters, and spaces
assertTrue(Link.isValidLink("试试看: #123@ ")); // mixed unicode characters with trailing space
}

@Test
public void equals() {
Link link = new Link("my link");

// same values -> returns true
assertTrue(link.equals(new Link("my link")));

// same object -> returns true
assertTrue(link.equals(link));

// null -> returns false
assertFalse(link.equals(null));

// different types -> returns false
assertFalse(link.equals(5.0f));

// different link -> returns false
assertFalse(link.equals(new Link("not my link")));
}
}

0 comments on commit a38f6a4

Please sign in to comment.