public void Unregister_ThenUnsafeNativeMethodUnregisterDeviceNotificationsIsCalled() { // ARRANGE var mockedBroadcastDeviceInterfaceFactory = new Mock <IBroadcastDeviceInterfaceFactory>(); var mockedMarshallWrapper = new Mock <IMarshalWrapper>(); var mockedUnsafeNativeMethodsWrapper = new Mock <IUnsafeNativeMethodsWrapper>(); var mockedProcessHandleResultFactory = new Mock <IProcessHandleResultFactory>(); var deviceManagement = new DeviceNotifications( mockedBroadcastDeviceInterfaceFactory.Object, mockedMarshallWrapper.Object, mockedUnsafeNativeMethodsWrapper.Object, mockedProcessHandleResultFactory.Object); var unregisterHandle = new IntPtr(42); // ACT deviceManagement.UnRegister(unregisterHandle); // ASSERT mockedUnsafeNativeMethodsWrapper.Verify(x => x.UnRegisterDeviceNotification(unregisterHandle), Times.Once); }