001 package org.cocome.tradingsystem.systests.interfaces;
002
003 /**
004 * Interface of the entire enterprise. This is used to create new products and
005 * check some global conditions on order state (so for most implementations this
006 * is just another database wrapper).
007 *
008 * @author Benjamin Hummel
009 * @author Christian Pfaller
010 * @author $Author: hummel $
011 * @version $Rev: 47 $
012 * @levd.rating GREEN Rev: 47
013 */
014 public interface IEnterprise {
015
016 /**
017 * Creates a new product. This is used for the initial creation of test
018 * data. Additional fields required by the database should be provided by
019 * the test driver.
020 *
021 * @param barcode
022 * the barcode of the product.
023 * @param purchasePrice
024 * the purchase price in Cent.
025 * @param name
026 * the name of the product.
027 * @return the product created.
028 */
029 IProduct createProduct(int barcode, int purchasePrice, String name)
030 throws Exception;
031
032 /**
033 * Returns whether there is a product transfer requested (might be visible
034 * by orders in the database). The number of products is not relevant here.
035 *
036 * @param product
037 * the product to be transfered.
038 * @param storeFrom
039 * the store which has to deliver the product.
040 * @param storeTo
041 * the store which should receive the product.
042 * @return whether there is a product transfer requested.
043 */
044 boolean existsProductTransfer(IProduct product, IStorePC storeFrom,
045 IStorePC storeTo);
046 }