001    package org.cocome.tradingsystem.systests.interfaces;
002    
003    /**
004     * Interface of the cashbox consisting of a "box" containing the money and some
005     * keys allowing user input. We do not model explicit key presses at this level.
006     * It is the responsibility of the test driver to resolve these high level
007     * commands to single key strokes if the application requires this.
008     * 
009     * @author Benjamin Hummel
010     * @author Christian Pfaller
011     * @author $Author: hummel $
012     * @version $Rev: 47 $
013     * @levd.rating GREEN Rev: 47
014     */
015    public interface ICashBox extends IUpdateReceiver {
016    
017            /**
018             * Returns whether the open signal for the cashbox has been sent (and not
019             * yet been read).
020             */
021            boolean wasOpenSignalSent() throws Exception;
022    
023            /**
024             * Returns the current status of the cashbox to the system. This is called
025             * only when the status changes, but the test driver may support some
026             * polling mechanism or regular sending of the status if the implementation
027             * of the system requires this.
028             * 
029             * @param closed
030             *            true if the cashbox is closed.
031             */
032            void setCashboxStatus(boolean closed) throws Exception;
033    
034            /** Corresponds to pressing the "new sale" button. */
035            void startNewSale() throws Exception;
036    
037            /** Corresponds to pressing the "sale finished" button. */
038            void finishSale() throws Exception;
039    
040            /** Corresponds to pressing the "cash payment" button. */
041            void startCashPayment() throws Exception;
042    
043            /** Corresponds to pressing the "credit card payment" button. */
044            void startCreditCardPayment() throws Exception;
045    
046            /**
047             * Enter the amount of cash received. This might be resolved to multiple key
048             * presses by the test driver.
049             * 
050             * @param centAmount
051             *            the amount in Cent (or whatever currency)
052             */
053            void enterReceivedCash(int centAmount) throws Exception;
054    
055            /**
056             * Manually enable the credit card reader to be able to take credit card
057             * payment while in expressmode
058             */
059            void manuallyEnableCreditCardReader() throws Exception;
060    }