--- /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;
+
+public class RemovePluginTest {
+
+ @Test
+ public void removePluginMessageHasCorrectName() {
+ assertThat(removePlugin.getName(), equalTo("RemovePlugin"));
+ }
+
+ @Test
+ public void settingPluginNameResultsInPluginNameFieldBeingSet() {
+ verifyFieldValueAfterSettingProperty(removePlugin, RemovePlugin::setPluginName, "PluginName", "test.Plugin");
+ }
+
+ @Test
+ public void settingMaxWaitTimeResultsInMaxWaitTimeFieldBeingSet() {
+ verifyFieldValueAfterSettingProperty(removePlugin, RemovePlugin::setMaxWaitTime, "MaxWaitTime", 17, equalTo("17"));
+ }
+
+ @Test
+ public void settingPurgeToFalseResultsInPurgeFieldBeingSetToFalse() {
+ verifyFieldValueAfterSettingFlag(removePlugin, RemovePlugin::setPurge, "Purge", false);
+ }
+
+ @Test
+ public void settingPurgeToTrueResultsInPurgeFieldBeingSetToTrue() {
+ verifyFieldValueAfterSettingFlag(removePlugin, RemovePlugin::setPurge, "Purge", true);
+ }
+
+ private final RemovePlugin removePlugin = new RemovePlugin("identifier");
+
+}