From ea649a0a9f44d30ab2a848b1268ca57844297afe Mon Sep 17 00:00:00 2001 From: Sven Kubiak Date: Mon, 27 Jul 2020 21:03:45 +0200 Subject: [PATCH] Unit test tuning --- .../de/svenkubiak/jpushover/apis/Glance.java | 3 - .../de/svenkubiak/jpushover/apis/Message.java | 7 +- src/test/java/jpushover/apis/GlanceTests.java | 33 ++++++ .../java/jpushover/apis/MessageTests.java | 112 ++++++++++++++++++ 4 files changed, 147 insertions(+), 8 deletions(-) diff --git a/src/main/java/de/svenkubiak/jpushover/apis/Glance.java b/src/main/java/de/svenkubiak/jpushover/apis/Glance.java index 9d008b5..adb9a91 100644 --- a/src/main/java/de/svenkubiak/jpushover/apis/Glance.java +++ b/src/main/java/de/svenkubiak/jpushover/apis/Glance.java @@ -162,9 +162,6 @@ public class Glance implements API { */ @SuppressWarnings({ "rawtypes", "unchecked" }) public Future pushAsync() throws InterruptedException, ExecutionException { - Objects.requireNonNull(body.get(Param.TOKEN.toString()), "Token is required for a glance"); - Objects.requireNonNull(body.get(Param.USER.toString()), "User is required for a glance"); - return AsyncService.getInstance().execute(new AsyncExecutor(this)); } diff --git a/src/main/java/de/svenkubiak/jpushover/apis/Message.java b/src/main/java/de/svenkubiak/jpushover/apis/Message.java index 6a1953a..8f4c306 100644 --- a/src/main/java/de/svenkubiak/jpushover/apis/Message.java +++ b/src/main/java/de/svenkubiak/jpushover/apis/Message.java @@ -277,8 +277,8 @@ public class Message implements API { */ @Override public PushoverResponse push() throws IOException, InterruptedException { - Objects.requireNonNull(body.get(Param.TOKEN.toString()), "Token is required for validation"); - Objects.requireNonNull(body.get(Param.USER.toString()), "User is required for validation"); + Objects.requireNonNull(body.get(Param.TOKEN.toString()), "Token is required for a message"); + Objects.requireNonNull(body.get(Param.USER.toString()), "User is required for a message"); Objects.requireNonNull(body.get(Param.MESSAGE.toString()), "Message is required for a message"); Validate.checkArgument(body.get(Param.MESSAGE.toString()).length() <= 1024, "Message can not exceed more than 1024 characters"); @@ -317,9 +317,6 @@ public class Message implements API { */ @SuppressWarnings({ "unchecked", "rawtypes" }) public Future pushAsync() throws InterruptedException, ExecutionException { - Objects.requireNonNull(body.get(Param.TOKEN.toString()), "Token is required for a glance"); - Objects.requireNonNull(body.get(Param.USER.toString()), "User is required for a glance"); - return AsyncService.getInstance().execute(new AsyncExecutor(this)); } diff --git a/src/test/java/jpushover/apis/GlanceTests.java b/src/test/java/jpushover/apis/GlanceTests.java index a923ec9..8610f54 100644 --- a/src/test/java/jpushover/apis/GlanceTests.java +++ b/src/test/java/jpushover/apis/GlanceTests.java @@ -1,7 +1,10 @@ package jpushover.apis; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.io.IOException; + import org.junit.jupiter.api.Test; import de.svenkubiak.jpushover.JPushover; @@ -114,4 +117,34 @@ public class GlanceTests { //then assertTrue(glance.getValue(Param.PERCENT.toString()).equals(String.valueOf(value))); } + + @Test + void testMissingToken() throws IOException, InterruptedException { + //given + String expectedMessage = "Token is required for a glance"; + + //when + Exception exception = assertThrows(NullPointerException.class, () -> { + JPushover.newGlance().push(); + }); + String actualMessage = exception.getMessage(); + + //then + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + void testMissingUser() throws IOException, InterruptedException { + //given + String expectedMessage = "User is required for a glance"; + + //when + Exception exception = assertThrows(NullPointerException.class, () -> { + JPushover.newGlance().withToken("foo").push(); + }); + String actualMessage = exception.getMessage(); + + //then + assertTrue(actualMessage.contains(expectedMessage)); + } } diff --git a/src/test/java/jpushover/apis/MessageTests.java b/src/test/java/jpushover/apis/MessageTests.java index 96fff44..4a63b05 100644 --- a/src/test/java/jpushover/apis/MessageTests.java +++ b/src/test/java/jpushover/apis/MessageTests.java @@ -1,7 +1,10 @@ package jpushover.apis; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.io.IOException; + import org.junit.jupiter.api.Test; import de.svenkubiak.jpushover.JPushover; @@ -206,4 +209,113 @@ public class MessageTests { //then assertTrue(message.getValue(Param.CALLBACK.toString()).equals(value)); } + + @Test + void testMissingToken() throws IOException, InterruptedException { + //given + String expectedMessage = "Token is required for a message"; + + //when + Exception exception = assertThrows(NullPointerException.class, () -> { + JPushover.newMessage().push(); + }); + String actualMessage = exception.getMessage(); + + //then + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + void testMissingUser() throws IOException, InterruptedException { + //given + String expectedMessage = "User is required for a message"; + + //when + Exception exception = assertThrows(NullPointerException.class, () -> { + JPushover.newMessage().withToken("foo").push(); + }); + String actualMessage = exception.getMessage(); + + //then + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + void testMissingMessage() throws IOException, InterruptedException { + //given + String expectedMessage = "Message is required for a message"; + + //when + Exception exception = assertThrows(NullPointerException.class, () -> { + JPushover.newMessage().withToken("foo").withUser("bar").push(); + }); + String actualMessage = exception.getMessage(); + + //then + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + void testMessageLimit() throws IOException, InterruptedException { + //given + String message = "RiZzOldb0QxPYyVPR0IsbkKnUdw12YEFQng1hb34Yu3xxckX1Jhm8zOEKK4COsdFDq0eE1YBUHlLD3EXks63FPJKRvG8hswsSDBDwi3xvvtbUm2dFMjaHFGvhcT30QKcbItvHqdXyGqa19DSrwEHhHYB7ZdwSsXQmcgscjJMWFTEoANRb5LqWc0a5LWHqesgHP42GccHNCZ03SL3cwa4KUF5H005jMhYv0rWmjqDb7v8voyAThaUQUXpeIMBMnOTOilJUD70DDDWxKZDKj7ymoMApNfvtvRT4sc8ghcWy7KtO0FNWJ5YbKWiXZFpaz7q7KaxzCa5KERGbft2QBoSEIgF0iUTXdp5XkFGXYyQUwOEmlx7I68EhhwOWHO9Qoqi5Nj3B703zbcMDR4BQnlct4Yzqa50bZDahIr7GOAEZrGtzs9IG8BuThWzdZIf64Zg01jVHH8kfCBkg4q9gzBdbARiQ5KmycviBezNgp10JcNE3h4OJBdhmnCm2TO3sXtHbkfznbxhc9sN1FnvVCdnQhBhwAp0TBNzNmbuuebxMccVCyhqjJU1K4XrSQu5Qa3Zlsb2QQ88SeYtQe0tm4a8ojLY9PcdofVGG2EOgNzFCHjgHyja30x6a4CFH71QfG6AkpXfDisYUSB2SxozHEPQKvlyVcfhOla2d9jDbeAAuhtyWW3UhydOspqwaAwXSsKFROfnpzn6izw1eeXqrxxTj08HQuBUpdUB4G8nyQurXFHC2iH6M7Iyb6QZ7WfVLMV5Yn16Pk6AzGVFRLmvMo0yex72vTQqsxNhA15Jjgh1NDqaTJiqLGyRvj9WLWsgop2YwabnwT6MN3Lxa17J3xPg6I1hhnEWkn8GtQmcStOJDOn3nIQC1qq79NUOqfPrY1vGNBfD3cCDEKi7fwoJvBmW8sn04P2UGu9Y0H6lBnklYX5yBk7Je7GKPyYQgxKt72Ij8F9v21eanrVPi8aV39JeMvF8X7ZT0BtqrxE3EG34eYaakRZwiGjl1MwSUFquHoRPE"; + String expectedMessage = "Message can not exceed more than 1024 characters"; + + //when + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + JPushover.newMessage().withToken("foo").withUser("bar").withMessage(message).push(); + }); + String actualMessage = exception.getMessage(); + + //then + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + void testTitleLimit() throws IOException, InterruptedException { + //given + String title = "XNaH6iAPYS0E2q5ZMAsKbOyAXArfmcWhx1D4HXTt0rmKShR0lLzH87041kw6YNQ5lluOTi5LrWKqQLBe7KuT9JTJLJVEMPGQv7fCN2Wb8aXy57v3g954sVqEQhZmP3xBXL42DMmOMg9iPj4uAGq5S80Bb3omjZTM5IqXa8LhnQbjQVBbNfTrFUQOkjrcLThFj1POURX2iwVvKud0ySNLnDWXLANS2NBt6gUH7L0rihUwEIhwXyvcnr3J3kt"; + String expectedMessage = "Title can not exceed more than 250 characters"; + + //when + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + JPushover.newMessage().withToken("foo").withUser("bar").withMessage("foobar").withTitle(title).push(); + }); + String actualMessage = exception.getMessage(); + + //then + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + void testUrlLimit() throws IOException, InterruptedException { + //given + String url = "FqP7inUPZBTXO43n6OVbCrDI1FkIEhb8CZDa86pgNV2EgWbArcEgnVTwqpy95DvSr0ZaDs3X624QDTqyygvVl76WkXayt15Mix8jUklgOVHdMjTrnHcsFQLoAu2Tmuq3UzAVw9ekNtXv3GzilNOCuBJPMm3U3bMfu9mZIEZNQ6c1xttFPAbQYGciw4UL8mIX3ZpoqfTtWRtFW4ZQcvgkoUKKxcvR9isx4bBjPDvE8NvjUmrv0kYwUrfl98nCHorYPzRX5RMr2w46MwWhylfw5WTS5M2fpIwjWBoAQH3IBfvExxEhGIjAfCIuBDBh5LlNvW4Blg3j89DV4gmAA9FkfDt2SuWPBu3XuV7pQCz7Mkq4S9uoCp9W7ZceqntQ73WAlkQkO2NQzggPPP3byxljLAMAZk13a7L2J8NMlQc5eOIVkMSdrLnkhklsiLqPZS2Su8aYNveG3IZsLjYjwdfPMZ36t7gkxd7AsjYXDndGfur6FsH7a5MMrAYrQFEYUyRE9"; + String expectedMessage = "URL can not exceed more than 512 characters"; + + //when + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + JPushover.newMessage().withToken("foo").withUser("bar").withMessage("foobar").withUrl(url).push(); + }); + String actualMessage = exception.getMessage(); + + //then + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + void testUrlTitleLimit() throws IOException, InterruptedException { + //given + String urlTitle = "FqP7inUPZBTXO43n6OVbCrDI1FkIEhb8CZDa86pgNV2EgWbArcEgnVTwqpy95DvSr0ZaDs3X624QDTqyygvVl76WkXayt15Mix8jUklgOVHdMjTrnHcsFQLoAu2Tmuq3UzAVw9ekNtXv3GzilNOCuBJPMm3U3bMfu9mZIEZNQ6c1xttFPAbQYGciw4UL8mIX3ZpoqfTtWRtFW4ZQcvgkoUKKxcvR9isx4bBjPDvE8NvjUmrv0kYwUrfl98nCHorYPzRX5RMr2w46MwWhylfw5WTS5M2fpIwjWBoAQH3IBfvExxEhGIjAfCIuBDBh5LlNvW4Blg3j89DV4gmAA9FkfDt2SuWPBu3XuV7pQCz7Mkq4S9uoCp9W7ZceqntQ73WAlkQkO2NQzggPPP3byxljLAMAZk13a7L2J8NMlQc5eOIVkMSdrLnkhklsiLqPZS2Su8aYNveG3IZsLjYjwdfPMZ36t7gkxd7AsjYXDndGfur6FsH7a5MMrAYrQFEYUyRE9"; + String expectedMessage = "URL Title can not exceed more than 100 characters"; + + //when + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + JPushover.newMessage().withToken("foo").withUser("bar").withMessage("foobar").withUrlTitle(urlTitle).push(); + }); + String actualMessage = exception.getMessage(); + + //then + assertTrue(actualMessage.contains(expectedMessage)); + } }