Use event bus to change FCP interface configuration.
[Sone.git] / src / test / java / net / pterodactylus / sone / core / PreferencesTest.java
index e2caaae..65d59e7 100644 (file)
@@ -4,18 +4,24 @@ import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.ALWAYS;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.instanceOf;
 import static org.hamcrest.Matchers.is;
+import static org.mockito.ArgumentCaptor.forClass;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
 import net.pterodactylus.sone.core.Options.Option;
 import net.pterodactylus.sone.core.event.InsertionDelayChangedEvent;
 import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired;
+import net.pterodactylus.sone.fcp.event.FcpInterfaceActivatedEvent;
+import net.pterodactylus.sone.fcp.event.FcpInterfaceDeactivatedEvent;
+import net.pterodactylus.sone.fcp.event.FullAccessRequiredChanged;
 
 import com.google.common.eventbus.EventBus;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.ArgumentCaptor;
 
 /**
  * Unit test for {@link Preferences}.
@@ -212,6 +218,20 @@ public class PreferencesTest {
        }
 
        @Test
+       public void settingFcpInterfaceActiveIsForwardedToEventBus() {
+           preferences.setFcpInterfaceActive(true);
+               verify(eventBus).post(any(FcpInterfaceActivatedEvent.class));
+               verifyNoMoreInteractions(eventBus);
+       }
+
+       @Test
+       public void settingFcpInterfaceInactiveIsForwardedToEventBus() {
+           preferences.setFcpInterfaceActive(false);
+               verify(eventBus).post(any(FcpInterfaceDeactivatedEvent.class));
+               verifyNoMoreInteractions(eventBus);
+       }
+
+       @Test
        public void settingFcpInterfaceActiveIsForwardedToOption() {
                preferences.setFcpInterfaceActive(true);
                verify(booleanOption).set(true);
@@ -235,4 +255,13 @@ public class PreferencesTest {
                verify(integerOption).set(null);
        }
 
+       @Test
+       public void settingFcpFullAccessRequiredIsForwardedToEventBus() {
+               preferences.setFcpFullAccessRequired(ALWAYS);
+               verify(integerOption).set(2);
+               ArgumentCaptor<FullAccessRequiredChanged> fullAccessRequiredChangedCaptor = forClass(FullAccessRequiredChanged.class);
+               verify(eventBus).post(fullAccessRequiredChangedCaptor.capture());
+               assertThat(fullAccessRequiredChangedCaptor.getValue().getFullAccessRequired(), is(ALWAYS));
+       }
+
 }