class GetEidLpadWorker implements LpadWorker<LpadWorkerExchange<String>, String> {

    public String run(final LpadWorkerExchange<String> lpadWorkerExchange) {

        progress.setTotalSteps(3);
        progress.stepExecuted(ProgressStep.GET_EID_RETRIEVING, "getEID retrieving...");

        inputValidation(lpadWorkerExchange == null, "Lpa dWorker Exchange must be provided");
        inputValidation(StringUtils.isBlank(lpadWorkerExchange.getBody()), "EID APDU must be provided");

        logDebug("EID APDU: " + lpadWorkerExchange);


        String eidapduResponseStr = apduChannel.transmitAPDU(lpadWorkerExchange.getBody());

        logDebug("Response: " + eidapduResponseStr);

        return convertGetEuiccData(eidapduResponseStr, progress);
    }

}

class GetEidLpadWorkerTest {

    private GetEidLpadWorker getIdWorker;
    @Mock
    private Progress mockProgress;
    @Mock
    private ApduChannel mockApduChannel;

    @Test(expected = RuntimeException.class)
    public void shouldThrowRuntimeExceptionWhenEidApduIsNull() {

        getIdWorker.run(buildStringLpadWorkerExchange(null));
    }

}