### Question:
RemascFeesPayer { public void payMiningFees(byte[] blockHash, Coin value, UscAddress toAddress, List<LogInfo> logs) { this.transferPayment(value, toAddress); this.logPayment(blockHash, value, toAddress, logs); } RemascFeesPayer(Repository repository, UscAddress contractAddress); void payMiningFees(byte[] blockHash, Coin value, UscAddress toAddress, List<LogInfo> logs);  }### Answer:
@Test public void payMiningFees() { Repository repositoryMock = Mockito.mock(Repository.class); RemascFeesPayer feesPayer = new RemascFeesPayer(repositoryMock, PrecompiledContracts.REMASC_ADDR); byte[] blockHash = { 0x1, 0x2 }; Coin value = Coin.valueOf(7L); UscAddress toAddress = new UscAddress("6c386a4b26f73c802f34673f7248bb118f97424a"); List<LogInfo> logs = new ArrayList<>(); feesPayer.payMiningFees(blockHash, value, toAddress, logs); Assert.assertEquals(1, logs.size()); LogInfo result = logs.get(0); Assert.assertArrayEquals(PrecompiledContracts.REMASC_ADDR.getBytes(), result.getAddress()); Assert.assertEquals(2, result.getTopics().size()); Assert.assertEquals("000000000000000000000000000000006d696e696e675f6665655f746f706963", result.getTopics().get(0).toString()); Assert.assertEquals("0000000000000000000000006c386a4b26f73c802f34673f7248bb118f97424a", result.getTopics().get(1).toString()); Assert.assertNotNull(result.getData()); List<RLPElement> rlpData = RLP.decode2(result.getData()); Assert.assertEquals(1 , rlpData.size()); RLPList dataList = (RLPList)rlpData.get(0); Assert.assertEquals(2, dataList.size()); Assert.assertArrayEquals(blockHash, dataList.get(0).getRLPData()); Assert.assertEquals(value, RLP.parseCoin(dataList.get(1).getRLPData())); verify(repositoryMock, times(1)).addBalance(PrecompiledContracts.REMASC_ADDR, value.negate()); verify(repositoryMock, times(1)).addBalance(toAddress, value); }