From 5fc70db494113ea28557b08a614b74f08c781613 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Debora=20W=C3=B6pcke?= Date: Sat, 1 Aug 2020 07:14:37 +0200 Subject: [PATCH] Add access to the NewKnownGood field in a SubscribedUSKUpdate message. --- .../net/pterodactylus/fcp/SubscribedUSKUpdate.java | 9 ++++ .../fcp/SubscribedUSKUpdateMessageTest.java | 61 ++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 src/test/java/net/pterodactylus/fcp/SubscribedUSKUpdateMessageTest.java diff --git a/src/main/java/net/pterodactylus/fcp/SubscribedUSKUpdate.java b/src/main/java/net/pterodactylus/fcp/SubscribedUSKUpdate.java index d39e8db..4b1e75b 100644 --- a/src/main/java/net/pterodactylus/fcp/SubscribedUSKUpdate.java +++ b/src/main/java/net/pterodactylus/fcp/SubscribedUSKUpdate.java @@ -67,4 +67,13 @@ public class SubscribedUSKUpdate extends BaseMessage implements Identifiable { return getField("URI"); } + /** + * Returns whether the request returns a new known good. + * + * @return true if it does, false if it does not. + */ + public boolean isNewKnownGood() { + return Boolean.valueOf(getField("NewKnownGood")); + } + } diff --git a/src/test/java/net/pterodactylus/fcp/SubscribedUSKUpdateMessageTest.java b/src/test/java/net/pterodactylus/fcp/SubscribedUSKUpdateMessageTest.java new file mode 100644 index 0000000..c0dee37 --- /dev/null +++ b/src/test/java/net/pterodactylus/fcp/SubscribedUSKUpdateMessageTest.java @@ -0,0 +1,61 @@ +/* + * jFCPlib - PeerNoteTest.java - Copyright © 2020 David Roden + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package net.pterodactylus.fcp; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +import org.junit.Test; + +public class SubscribedUSKUpdateMessageTest { + + @Test + public void testWithoutNewKnownGood() { + FcpMessage receivedMessage = new FcpMessage("SubscribedUSKUpdate"); + String URIValue = "CHK@anURI"; + receivedMessage.setField("URI", URIValue); + + SubscribedUSKUpdate subscribedUSKUpdate = new SubscribedUSKUpdate(receivedMessage); + + assertThat(subscribedUSKUpdate.getURI(), is(URIValue)); + assertThat(subscribedUSKUpdate.isNewKnownGood(), is(false)); + } + + @Test + public void testWithNewKnownGoodFalse() { + checkWithNewKnownGood("false", false); + } + + @Test + public void testWithNewKnownGoodTrue() { + checkWithNewKnownGood("true", true); + } + + private void checkWithNewKnownGood(String text, boolean value) { + FcpMessage receivedMessage = new FcpMessage("SubscribedUSKUpdate"); + String URIValue = "CHK@anURI"; + receivedMessage.setField("URI", URIValue); + receivedMessage.setField("NewKnownGood", text); + + SubscribedUSKUpdate subscribedUSKUpdate = new SubscribedUSKUpdate(receivedMessage); + + assertThat(subscribedUSKUpdate.getURI(), is(URIValue)); + assertThat(subscribedUSKUpdate.isNewKnownGood(), is(value)); + } + +} -- 2.7.4