### Question:
AccountLocalConfigPermissioningController implements TransactionPermissioningProvider { @Override public boolean isPermitted(final Transaction transaction) { final Hash transactionHash = transaction.getHash(); final Address sender = transaction.getSender(); LOG.trace("Account permissioning - Local Config: Checking transaction {}", transactionHash); this.checkCounter.inc(); if (sender == null) { this.checkCounterUnpermitted.inc(); LOG.trace( "Account permissioning - Local Config: Rejected transaction {} without sender", transactionHash); return false; } else { if (contains(sender.toString())) { this.checkCounterPermitted.inc(); LOG.trace( "Account permissioning - Local Config: Permitted transaction {} from {}", transactionHash, sender); return true; } else { this.checkCounterUnpermitted.inc(); LOG.trace( "Account permissioning - Local Config: Rejected transaction {} from {}", transactionHash, sender); return false; } } } AccountLocalConfigPermissioningController(
      final LocalPermissioningConfiguration configuration, final MetricsSystem metricsSystem);  AccountLocalConfigPermissioningController(
      final LocalPermissioningConfiguration configuration,
      final AllowlistPersistor allowlistPersistor,
      final MetricsSystem metricsSystem); AllowlistOperationResult addAccounts(final List<String> accounts); AllowlistOperationResult removeAccounts(final List<String> accounts); boolean contains(final String account); List<String> getAccountAllowlist(); synchronized void reload(); @Override boolean isPermitted(final Transaction transaction);  }### Answer:
@Test public void isPermittedShouldReturnFalseIfTransactionDoesNotContainSender() { final Transaction transactionWithoutSender = mock(Transaction.class); when(transactionWithoutSender.getSender()).thenReturn(null); verifyCountersUntouched(); boolean permitted = controller.isPermitted(transactionWithoutSender); assertThat(permitted).isFalse(); verifyCountersUnpermitted(); }