AusweisApp2/test/helper/MockCardConnectionWorker.cpp

86 lines
2.0 KiB
C++

/*!
* \copyright Copyright (c) 2018-2019 Governikus GmbH & Co. KG, Germany
*/
#include "MockCardConnectionWorker.h"
using namespace governikus;
MockCardConnectionWorker::MockCardConnectionWorker(Reader* pReader)
: CardConnectionWorker(pReader)
, mReader(pReader)
, mResponseCodes()
, mResponseData()
, mPaceCodes()
{
}
MockCardConnectionWorker::~MockCardConnectionWorker()
{
if (!mReader.isNull())
{
mReader->deleteLater();
}
}
void MockCardConnectionWorker::addResponse(CardReturnCode pCode, const QByteArray& pData)
{
mResponseCodes += pCode;
mResponseData += pData;
}
void MockCardConnectionWorker::addPaceCode(CardReturnCode pCode)
{
mPaceCodes += pCode;
}
CardReturnCode MockCardConnectionWorker::transmit(const CommandApdu& pCommandApdu, ResponseApdu& pResponseApdu)
{
Q_UNUSED(pCommandApdu)
pResponseApdu.setBuffer(mResponseData.empty() ? QByteArray() : mResponseData.takeFirst());
return mResponseCodes.empty() ? CardReturnCode::UNDEFINED : mResponseCodes.takeFirst();
}
CardReturnCode MockCardConnectionWorker::updateRetryCounter()
{
if (!mReader->getReaderInfo().hasCard())
{
return CardReturnCode::CARD_NOT_FOUND;
}
return CardReturnCode::OK;
}
EstablishPaceChannelOutput MockCardConnectionWorker::establishPaceChannel(PacePasswordId pPasswordId,
const QString& pPasswordValue,
const QByteArray& pChat,
const QByteArray& pCertificateDescription)
{
Q_UNUSED(pPasswordId)
Q_UNUSED(pPasswordValue)
Q_UNUSED(pChat)
Q_UNUSED(pCertificateDescription)
return mPaceCodes.empty() ? CardReturnCode::UNDEFINED : mPaceCodes.takeFirst();
}
CardReturnCode MockCardConnectionWorker::destroyPaceChannel()
{
return mPaceCodes.empty() ? CardReturnCode::UNDEFINED : mPaceCodes.takeFirst();
}
CardReturnCode MockCardConnectionWorker::setEidPin(const QString& pNewPin, quint8 pTimeoutSeconds, ResponseApdu& pResponseApdu)
{
Q_UNUSED(pNewPin)
Q_UNUSED(pTimeoutSeconds)
pResponseApdu.setBuffer(mResponseData.empty() ? QByteArray() : mResponseData.takeFirst());
return mResponseCodes.empty() ? CardReturnCode::UNDEFINED : mResponseCodes.takeFirst();
}