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

    private func assembleApp(configuration: BuildConfiguration) -> FirebaseNotificationsTokenRegistrationTestContext {
        let buildConfigurationProviding = StubBuildConfigurationProviding(configuration: configuration)
        let capturingFirebaseAdapter = CapturingFirebaseAdapter()
        let tokenRegistration = FirebaseNotificationsTokenRegistration(buildConfiguration: buildConfigurationProviding,
                                                                       firebaseAdapter: capturingFirebaseAdapter)

        return FirebaseNotificationsTokenRegistrationTestContext(tokenRegistration: tokenRegistration,
                                                    capturingFirebaseAdapter: capturingFirebaseAdapter)
    }

    func testForDebugConfigurationTestNotificationsShouldBeSubscribed() {

        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)
    }
    
}
