public async Task Dont_Do_Work_Inactive_Federation()
        {
            this.federationWalletManager.IsFederationWalletActive().Returns(false);

            this.ibdState.IsInitialBlockDownload().Returns(true);

            using (var signedMultisigTransactionBroadcaster = new SignedMultisigTransactionBroadcaster(
                       this.loggerFactory,
                       this.mempoolManager,
                       this.broadcasterManager,
                       this.ibdState,
                       this.federationWalletManager,
                       this.signals))
            {
                signedMultisigTransactionBroadcaster.Start();

                var partial = new Transaction();
                var xfer    = new CrossChainTransfer();
                xfer.SetPartialTransaction(partial);

                this.signals.Publish(new CrossChainTransferTransactionFullySigned(xfer));
                await Task.Delay(100); //the event subscriber handles the event asynchronously so let's wait a bit to give it the time to complete.

                await this.broadcasterManager.Received(0).BroadcastTransactionAsync(Arg.Any <Transaction>());
            }
        }
        public async Task Call_GetSignedTransactionsAsync_Signed_Transactions_Broadcasts()
        {
            this.federatedPegSettings.PublicKey.Returns(PublicKey);

            using (var signedMultisigTransactionBroadcaster = new SignedMultisigTransactionBroadcaster(
                       this.loggerFactory,
                       this.mempoolManager,
                       this.broadcasterManager,
                       this.ibdState,
                       this.federationWalletManager,
                       this.signals))
            {
                signedMultisigTransactionBroadcaster.Start();

                var partial = new Transaction();
                var xfer    = new CrossChainTransfer();
                xfer.SetPartialTransaction(partial);

                this.signals.Publish(new CrossChainTransferTransactionFullySigned(xfer));
                await Task.Delay(100); //the event subscriber handles the event asynchronously so let's wait a bit to give it the time to complete.

                await this.broadcasterManager.Received(1).BroadcastTransactionAsync(Arg.Any <Transaction>());
            }
        }