--- /dev/null
+package net.pterodactylus.fcp;
+
+import org.junit.Test;
+
+import static net.pterodactylus.fcp.test.MessageTests.verifyFieldValueAfterSettingFlag;
+import static net.pterodactylus.fcp.test.MessageTests.verifyFieldValueAfterSettingProperty;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.nullValue;
+
+public class SubscribeUSKTest {
+
+ @Test
+ public void subscribeUskMessageHasCorrectName() {
+ assertThat(subscribeUSK.getName(), equalTo("SubscribeUSK"));
+ }
+
+ @Test
+ public void subscribeUskMessageSetsCorrectIdentifierField() {
+ assertThat(subscribeUSK.getField("Identifier"), equalTo("identifier"));
+ }
+
+ @Test
+ public void subscribeUskMessageSetsCorrectUriField() {
+ assertThat(subscribeUSK.getField("URI"), equalTo("uri"));
+ }
+
+ @Test
+ public void subscribeUskMessageHasNoDontPollField() {
+ assertThat(subscribeUSK.getField("DontPoll"), nullValue());
+ }
+
+ @Test
+ public void settingActiveToTrueResultsInDontPollFieldBeingSetToFalse() {
+ verifyFieldValueAfterSettingProperty(subscribeUSK, SubscribeUSK::setActive, "DontPoll", true, equalTo("false"));
+ }
+
+ @Test
+ public void settingActiveToFalseResultsInDontPollFieldBeingSetToTrue() {
+ verifyFieldValueAfterSettingProperty(subscribeUSK, SubscribeUSK::setActive, "DontPoll", false, equalTo("true"));
+ }
+
+ @Test
+ public void subscribeUskMessageHasNoSparsePollField() {
+ assertThat(subscribeUSK.getField("SparsePoll"), nullValue());
+ }
+
+ @Test
+ public void settingSparseToFalseResultsInSparsePollFieldBeingSetToFalse() {
+ verifyFieldValueAfterSettingFlag(subscribeUSK, SubscribeUSK::setSparse, "SparsePoll", false);
+ }
+
+ @Test
+ public void settingSparseToTrueResultsInSparsePollFieldBeingSetToTrue() {
+ verifyFieldValueAfterSettingFlag(subscribeUSK, SubscribeUSK::setSparse, "SparsePoll", true);
+ }
+
+ @Test
+ public void subscribeUskMessageHasNoPriorityClassField() {
+ assertThat(subscribeUSK.getField("PriorityClass"), nullValue());
+ }
+
+ @Test
+ public void settingPriorityResultsInPriorityClassFieldBeingSet() {
+ verifyFieldValueAfterSettingProperty(subscribeUSK, SubscribeUSK::setPriority, "PriorityClass", Priority.bulkSplitfile, equalTo("4"));
+ }
+
+ @Test
+ public void subscribeUskMessageHasNoPriorityClassProgressField() {
+ assertThat(subscribeUSK.getField("PriorityClassProgress"), nullValue());
+ }
+
+ @Test
+ public void settingActivePriorityResultsInPriorityClassProgressFieldBeingSet() {
+ verifyFieldValueAfterSettingProperty(subscribeUSK, SubscribeUSK::setActivePriority, "PriorityClassProgress", Priority.update, equalTo("3"));
+ }
+
+ @Test
+ public void subscribeUskMessageHasNoRealTimeFlagField() {
+ assertThat(subscribeUSK.getField("RealTimeFlag"), nullValue());
+ }
+
+ @Test
+ public void settingRealTimeToFalseResultsInRealTimeFlagFieldBeingSetToFalse() {
+ verifyFieldValueAfterSettingFlag(subscribeUSK, SubscribeUSK::setRealTime, "RealTimeFlag", false);
+ }
+
+ @Test
+ public void settingRealTimeToTrueResultsInRealTimeFlagFieldBeingSetToTrue() {
+ verifyFieldValueAfterSettingFlag(subscribeUSK, SubscribeUSK::setRealTime, "RealTimeFlag", true);
+ }
+
+ @Test
+ public void subscribeUskMessageHasNoIgnoreUSKDatehintsField() {
+ assertThat(subscribeUSK.getField("IgnoreUSKDatehints"), nullValue());
+ }
+
+ @Test
+ public void settingIgnoreDateHintsToFalseResultsInIgnoreUSKDatehintsFieldBeingSetToFalse() {
+ verifyFieldValueAfterSettingFlag(subscribeUSK, SubscribeUSK::setIgnoreDateHints, "IgnoreUSKDatehints", false);
+ }
+
+ @Test
+ public void settingIgnoreDateHintsToTrueResultsInIgnoreUSKDatehintsFieldBeingSetToTrue() {
+ verifyFieldValueAfterSettingFlag(subscribeUSK, SubscribeUSK::setIgnoreDateHints, "IgnoreUSKDatehints", true);
+ }
+
+ private final SubscribeUSK subscribeUSK = new SubscribeUSK("uri", "identifier");
+
+}