diff --git a/src/test/java/edu/group5/app/control/OrgAPIWrapperTest.java b/src/test/java/edu/group5/app/control/OrgAPIWrapperTest.java new file mode 100644 index 0000000..6f22c85 --- /dev/null +++ b/src/test/java/edu/group5/app/control/OrgAPIWrapperTest.java @@ -0,0 +1,74 @@ +package edu.group5.app.control; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import tools.jackson.core.exc.StreamReadException; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.lang.IllegalArgumentException; + +public class OrgAPIWrapperTest { + String testURL; + String wrongURL; + String wrongURL2; + + @BeforeEach + void init() { + this.testURL = "https://app.innsamlingskontrollen.no/api/public/v1/all"; + this.wrongURL = "This is not a URL"; + this.wrongURL2 = "https://www.google.com"; + } + + @Test + public void nullURLThrowsException() { + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, + () -> new OrgAPIWrapper(null)); + assertEquals("url can't be null", exception.getMessage()); + } + + @Test + public void emptyURLThrowsException() { + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> new OrgAPIWrapper("")); + assertEquals("url can't be blank", exception.getMessage()); + } + + @Test + public void faultyURLThrowsException() { + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, + () -> new OrgAPIWrapper(this.wrongURL)); + assertEquals("url has to be valid", exception.getMessage()); + } + + // @Test + // public void noConnectionReturnsFalseImport() { + // assertDoesNotThrow(() -> { + // OrgAPIWrapper api = new OrgAPIWrapper(this.testURL); + // assertFalse(api.importData()); + // }); + // } + + @Test + public void importsNonEmptyData() { + assertDoesNotThrow(() -> { + OrgAPIWrapper api = new OrgAPIWrapper(testURL); + assertTrue(api.importData()); + assertFalse(api.getData().length == 0); + }); + } + + @Test + public void nonParseableSiteThrowsExceptionWhenImporting() { + assertDoesNotThrow(() -> { + OrgAPIWrapper api = new OrgAPIWrapper(this.wrongURL2); + StreamReadException exception = assertThrows(StreamReadException.class, () -> api.importData()); + assertEquals("The URL leads to a website that can't be parsed", exception.getMessage()); + }); + } + +}