### Question:
BridgeUtils { public static Wallet getFederationSpendWallet(Context uldContext, Federation federation, List<UTXO> utxos) { return getFederationsSpendWallet(uldContext, Arrays.asList(federation), utxos); }  static StoredBlock getStoredBlockAtHeight(UldBlockstoreWithCache blockStore, int height); static Wallet getFederationNoSpendWallet(Context uldContext, Federation federation); static Wallet getFederationsNoSpendWallet(Context uldContext, List<Federation> federations); static Wallet getFederationSpendWallet(Context uldContext, Federation federation, List<UTXO> utxos); static Wallet getFederationsSpendWallet(Context uldContext, List<Federation> federations, List<UTXO> utxos); static boolean isValidLockTx(UldTransaction tx); static Optional<Script> getFirstInputScriptSig(UldTransaction tx); static boolean isLockTx(UldTransaction tx, List<Federation> federations, Context uldContext, BridgeConstants bridgeConstants); static boolean isLockTx(UldTransaction tx, Federation federation, Context uldContext, BridgeConstants bridgeConstants); static boolean isReleaseTx(UldTransaction tx, List<Federation> federations); static boolean isMigrationTx(UldTransaction uldTx, Federation activeFederation, Federation retiringFederation, Context uldContext, BridgeConstants bridgeConstants); static Address recoverUldAddressFromEthTransaction(org.ethereum.core.Transaction tx, NetworkParameters networkParameters); static boolean isFreeBridgeTx(Transaction uscTx, long blockNumber, BlockchainNetConfig netConfig); static boolean isContractTx(Transaction uscTx); static boolean isFromFederateMember(org.ethereum.core.Transaction uscTx, Federation federation);  }### Answer:
@Test public void getFederationSpendWallet() throws UTXOProviderException { NetworkParameters regTestParameters = NetworkParameters.fromID(NetworkParameters.ID_REGTEST); Federation federation = new Federation(Arrays.asList(new UldECKey[]{ UldECKey.fromPublicOnly(Hex.decode("036bb9eab797eadc8b697f0e82a01d01cabbfaaca37e5bafc06fdc6fdd38af894a")), UldECKey.fromPublicOnly(Hex.decode("031da807c71c2f303b7f409dd2605b297ac494a563be3b9ca5f52d95a43d183cc5")) }), Instant.ofEpochMilli(5005L), 0L, regTestParameters); Context mockedUldContext = mock(Context.class); when(mockedUldContext.getParams()).thenReturn(regTestParameters); List<UTXO> mockedUtxos = new ArrayList<>(); mockedUtxos.add(mock(UTXO.class)); mockedUtxos.add(mock(UTXO.class)); mockedUtxos.add(mock(UTXO.class)); Wallet wallet = BridgeUtils.getFederationSpendWallet(mockedUldContext, federation, mockedUtxos); Assert.assertEquals(BridgeUldWallet.class, wallet.getClass()); assertIsWatching(federation.getAddress(), wallet, regTestParameters); CoinSelector selector = wallet.getCoinSelector(); Assert.assertEquals(UscAllowUnconfirmedCoinSelector.class, selector.getClass()); UTXOProvider utxoProvider = wallet.getUTXOProvider(); Assert.assertEquals(UscUTXOProvider.class, utxoProvider.getClass()); Assert.assertEquals(mockedUtxos, utxoProvider.getOpenTransactionOutputs(Collections.emptyList())); }