### Question:
TransactionRepositoryOkHttpImpl extends AbstractRepositoryOkHttpImpl implements TransactionRepository { @Override public Observable<TransactionAnnounceResponse> announceAggregateBondedCosignature( CosignatureSignedTransaction cosignatureSignedTransaction) { Callable<AnnounceTransactionInfoDTO> callback = () -> getClient() .announceCosignatureTransaction( new Cosignature() .parentHash(cosignatureSignedTransaction.getParentHash()) .signature(cosignatureSignedTransaction.getSignature()) .version(cosignatureSignedTransaction.getVersion()) .signerPublicKey( cosignatureSignedTransaction.getSigner().getPublicKey().toHex())); return call(callback, dto -> new TransactionAnnounceResponse(dto.getMessage())); } TransactionRepositoryOkHttpImpl(ApiClient apiClient); TransactionRoutesApi getClient(); @Override Observable<Transaction> getTransaction(TransactionGroup group, String transactionHash); @Override Observable<List<Transaction>> getTransactions(
      TransactionGroup group, List<String> transactionHashes); @Override Observable<TransactionAnnounceResponse> announce(SignedTransaction signedTransaction); @Override Observable<TransactionAnnounceResponse> announceAggregateBonded(
      SignedTransaction signedTransaction); @Override Observable<TransactionAnnounceResponse> announceAggregateBondedCosignature(
      CosignatureSignedTransaction cosignatureSignedTransaction); @Override Observable<Page<Transaction>> search(TransactionSearchCriteria criteria);  }### Answer:
@Test public void announceAggregateBondedCosignature() throws Exception { Account signer = Account.generateNewAccount(networkType); BigInteger version = AggregateTransactionCosignature.DEFAULT_VERSION; CosignatureSignedTransaction signedTransaction = new CosignatureSignedTransaction( version, "aParentHash", "aSignature", signer.getPublicAccount()); AnnounceTransactionInfoDTO announceTransactionInfoDTO = new AnnounceTransactionInfoDTO(); announceTransactionInfoDTO.setMessage("SomeMessage"); ArgumentCaptor<Object> parameter = mockRemoteCall(announceTransactionInfoDTO); TransactionAnnounceResponse response = repository.announceAggregateBondedCosignature(signedTransaction).toFuture().get(); Assertions.assertNotNull(response); Assertions.assertEquals( announceTransactionInfoDTO.getMessage(), announceTransactionInfoDTO.getMessage()); Cosignature cosignature = (Cosignature) parameter.getValue(); Assertions.assertEquals(signedTransaction.getParentHash(), cosignature.getParentHash()); Assertions.assertEquals(signedTransaction.getSignature(), cosignature.getSignature()); Assertions.assertEquals( signedTransaction.getSigner().getPublicKey().toHex(), cosignature.getSignerPublicKey()); }