### Question:
UpdatePullingTransactionObligationFulfiller extends LifecycleAdapter implements TransactionObligationFulfiller { @Override public void fulfill( final long toTxId ) throws InterruptedException { updatePuller.pullUpdates( ( currentTicket, targetTicket ) -> { return transactionIdStore != null && transactionIdStore.getLastClosedTransactionId() >= toTxId; }, true ); } UpdatePullingTransactionObligationFulfiller( UpdatePuller updatePuller,
            HighAvailabilityMemberStateMachine memberStateMachine, InstanceId serverId,
            Supplier<TransactionIdStore> transactionIdStoreSupplier ); @Override void fulfill( final long toTxId ); @Override void start(); @Override void stop();  }### Answer:
@Test public void shouldNotThrowNPEWhenAskedToFulFilledButNotYetHavingARoleAssigned() throws Throwable { UpdatePullingTransactionObligationFulfiller fulfiller = new UpdatePullingTransactionObligationFulfiller( updatePuller, machine, serverId, Suppliers.singleton( mock( TransactionIdStore.class ) ) ); fulfiller.fulfill( 1 ); }