From 265b0aca555d9880361b754b6a18ce70b5be28cd Mon Sep 17 00:00:00 2001 From: mcentner Date: Wed, 16 Jun 2010 11:19:41 +0000 Subject: Refactored smart card unit tests to use Spring to configure smart card emulators. git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@754 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- smcc/src/test/java/at/gv/egiz/smcc/CardEmul.java | 104 ++++++++++++++--------- 1 file changed, 66 insertions(+), 38 deletions(-) (limited to 'smcc/src/test/java/at/gv/egiz/smcc/CardEmul.java') diff --git a/smcc/src/test/java/at/gv/egiz/smcc/CardEmul.java b/smcc/src/test/java/at/gv/egiz/smcc/CardEmul.java index 3dfc8510..36794903 100644 --- a/smcc/src/test/java/at/gv/egiz/smcc/CardEmul.java +++ b/smcc/src/test/java/at/gv/egiz/smcc/CardEmul.java @@ -1,79 +1,101 @@ /* -* Copyright 2008 Federal Chancellery Austria and -* Graz University of Technology -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ + * Copyright 2008 Federal Chancellery Austria and + * Graz University of Technology + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package at.gv.egiz.smcc; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import javax.smartcardio.ATR; import javax.smartcardio.Card; import javax.smartcardio.CardChannel; import javax.smartcardio.CardException; +public class CardEmul extends Card { -@SuppressWarnings("restriction") -public abstract class CardEmul extends Card { - - protected Thread exclThread; // = null; - protected CardChannel channel; // = newCardChannel(this); + protected ATR atr; + + protected Thread exclThread; + protected CardChannel basicChannel; protected List applications = new ArrayList(); public CardEmul() { super(); } -// protected abstract CardChannelEmul newCardChannel(CardEmul cardEmul); + public void setAtr(byte[] atr) { + this.atr = new ATR(atr); + } + + /** + * @param basicChannel + * the basicChannel to set + */ + public void setBasicChannel(CardChannel basicChannel) { + this.basicChannel = basicChannel; + } + + /** + * @param applications + * the applications to set + */ + public void setApplications(List applications) { + this.applications = applications; + } @Override public void beginExclusive() throws CardException { - + if (exclThread == Thread.currentThread()) { - throw new CardException("Exclusive access already assigned to current thread."); + throw new CardException( + "Exclusive access already assigned to current thread."); } else if (exclThread != null) { - throw new CardException("Exclusive access already assigned to another thread."); + throw new CardException( + "Exclusive access already assigned to another thread."); } - + exclThread = Thread.currentThread(); - + } @Override public void endExclusive() throws CardException { - + if (exclThread == Thread.currentThread()) { exclThread = null; } else if (exclThread == null) { throw new CardException("Exclusive access has not been assigned."); } else { - throw new CardException("Exclusive access has not been assigned to current thread."); + throw new CardException( + "Exclusive access has not been assigned to current thread."); } - + } @Override public CardChannel getBasicChannel() { - return channel; + return basicChannel; } @Override public void disconnect(boolean reset) throws CardException { -// if (reset) { -// channel = newCardChannel(this); -// } + // if (reset) { + // channel = newCardChannel(this); + // } } @Override @@ -89,18 +111,24 @@ public abstract class CardEmul extends Card { @Override public byte[] transmitControlCommand(int arg0, byte[] arg1) throws CardException { - throw new CardException("transmitControlCommand() not supported."); - } + throw new CardException("transmitControlCommand() not supported."); + } + + @Override + public ATR getATR() { + return atr; + } public AbstractAppl getApplication(byte[] fid) { - for(AbstractAppl appl : applications) { - if (Arrays.equals(appl.getAID(), fid) || Arrays.equals(appl.getFID(), fid)) { + for (AbstractAppl appl : applications) { + if (Arrays.equals(appl.getAID(), fid) + || Arrays.equals(appl.getFID(), fid)) { return appl; } } return null; - + } } \ No newline at end of file -- cgit v1.2.3