     struct FirebaseNotificationsTokenRegistrationTestContext {
         var tokenRegistration: FirebaseNotificationsTokenRegistration
         var capturingFirebaseAdapter: CapturingFirebaseAdapter
+        var capturingFCMDeviceRegister: CapturingFCMDeviceRegistration
 
         func registerDeviceToken(deviceToken: Data = Data()) {
             tokenRegistration.registerDevicePushToken(deviceToken)


protocol FirebaseAdapter {

    func setAPNSToken(deviceToken: Data)
    func subscribe(toTopic topic: String)
    func unsubscribe(fromTopic topic: String)

}

class CapturingFirebaseAdapter: FirebaseAdapter {

    private(set) var registeredDeviceToken: Data?

        let context = assembleApp(configuration: .debug)
        XCTAssertFalse(context.capturingFirebaseAdapter.subscribedToAnnouncements)
    }

    func testReportTheFirebaseFCMTokenToTheFCMDevicerRegister() {
        let context = assembleApp(configuration: .debug)
        let stubFCMToken = "Stub token"
        context.capturingFirebaseAdapter.fcmToken = stubFCMToken
        context.registerDeviceToken()

        XCTAssertEqual(stubFCMToken, context.capturingFCMDeviceRegister.capturedFCM)
    }
    
}
