diff --git a/src/main/java/millions/calculators/TransactionCalculatorFactory.java b/src/main/java/millions/calculators/TransactionCalculatorFactory.java deleted file mode 100644 index 36a71c0..0000000 --- a/src/main/java/millions/calculators/TransactionCalculatorFactory.java +++ /dev/null @@ -1,22 +0,0 @@ -package millions.calculators; - -import millions.model.Share; -import millions.model.calculators.PurchaseCalculator; -import millions.model.calculators.SaleCalculator; -import millions.model.calculators.TransactionCalculator; - -/** - * Factory for creating transaction calculators. - */ -public class TransactionCalculatorFactory { - - private TransactionCalculatorFactory() {} - - public TransactionCalculator createPurchaseCalculator(Share share) { - return new PurchaseCalculator(share); - } - - public TransactionCalculator createSaleCalculator(Share share) { - return new SaleCalculator(share); - } -} diff --git a/src/main/java/millions/model/Share.java b/src/main/java/millions/model/Share.java index 7967b95..5a7a726 100644 --- a/src/main/java/millions/model/Share.java +++ b/src/main/java/millions/model/Share.java @@ -10,9 +10,11 @@ public class Share { /** * @param stock Which stock the share is for. - * @param quantity How many stocks - * @param purchasePrice Purchase price of the share - * @throws IllegalArgumentException + * @param quantity How many stocks. + * @param purchasePrice Purchase price of the share. + * @throws IllegalArgumentException if stock is null. + * @throws IllegalArgumentException if quantity is null. + * @throws IllegalArgumentException if purchasePrice is null. */ public Share(Stock stock, BigDecimal quantity, BigDecimal purchasePrice) { this.stock = stock; @@ -30,27 +32,27 @@ public Share(Stock stock, BigDecimal quantity, BigDecimal purchasePrice) { } } - /** Share() with int quantity */ + /** Share() with int quantity. */ public Share(Stock stock, int quantity, BigDecimal purchasePrice) { this(stock, BigDecimal.valueOf(quantity), purchasePrice); } /** - * @return + * @return Stock object. */ public Stock getStock() { return this.stock; } /** - * @return + * @return BigDecimal: quantity. */ public BigDecimal getQuantity() { return this.quantity; } /** - * @return + * @return BigDecimal PurchasePrice. */ public BigDecimal getPurchasePrice() { return this.purchasePrice; diff --git a/src/main/java/millions/model/Stock.java b/src/main/java/millions/model/Stock.java index 07dad71..a5445fe 100644 --- a/src/main/java/millions/model/Stock.java +++ b/src/main/java/millions/model/Stock.java @@ -38,48 +38,49 @@ public Stock(String symbol, String company, List prices, List volatilityFunctions) { this(symbol, company, new ArrayList<>(List.of(initialPrice)), volatilityFunctions); } /** - * @return + * @return String: symbol. */ public String getSymbol() { return this.symbol; } /** - * @return + * @return String: company. */ public String getCompany() { return this.company; } /** - * @return + * @return BigDecimal: price. */ public BigDecimal getSalesPrice() { return this.prices.getLast(); } /** - * @param price Sales price + * @param price Sales price. */ public void addNewSalesPrice(BigDecimal price) { this.prices.add(price); } /** - * @return + * @return BigDecimal list of prices. */ public List getHistoricalPrices() { return this.prices; } /** - * @return + * @return BigDecimal highest recorded price. */ public BigDecimal getHighestPrice() { BigDecimal highestPrice = this.prices.get(0); @@ -92,7 +93,7 @@ public BigDecimal getHighestPrice() { } /** - * @return + * @return BigDecimal lowest recorded price. */ public BigDecimal getLowestPrice() { BigDecimal lowestPrice = this.prices.get(0); @@ -105,7 +106,7 @@ public BigDecimal getLowestPrice() { } /** - * @return + * @return BigDecimal price difference from last week */ public BigDecimal getLatestPriceChange() { if (this.prices.size() < 2) { diff --git a/src/main/java/millions/model/Transaction.java b/src/main/java/millions/model/Transaction.java index 6e1e8b1..69c1167 100644 --- a/src/main/java/millions/model/Transaction.java +++ b/src/main/java/millions/model/Transaction.java @@ -17,18 +17,30 @@ protected Transaction(Share share, int week, TransactionCalculator transactionCa this.committed = false; } + /** + * @return Share object + */ public Share getShare() { return this.share; } + /** + * @return int: week + */ public int getWeek() { return this.week; } + /** + * @return TransactionCalculator object + */ public TransactionCalculator getCalculator() { return this.transactionCalculator; } + /** + * @return Boolean: status + */ public boolean isCommitted() { return this.committed; } diff --git a/src/main/java/millions/model/TransactionArchive.java b/src/main/java/millions/model/TransactionArchive.java index 6910a6c..20b7e7a 100644 --- a/src/main/java/millions/model/TransactionArchive.java +++ b/src/main/java/millions/model/TransactionArchive.java @@ -13,6 +13,11 @@ public TransactionArchive() { this.transactions = new ArrayList<>(); } + /** + * Adds a transaction to the archive + * @param transaction transaction object + * @return Boolean for success + */ public boolean add(Transaction transaction) { if (transactions.contains(transaction)) { return false; @@ -21,25 +26,45 @@ public boolean add(Transaction transaction) { return true; } + /** + * @return Boolean + */ public boolean isEmpty() { return transactions.isEmpty(); } + /** + * @return List of transaction objects + */ public List getTransactions() { return new ArrayList<>(transactions); } + /** + * returns transaction processed in a given week + * @param week int + * @return List of transaction objects + */ public List getTransactions(int week) { return transactions.stream().filter(x -> x.getWeek() == week).collect(Collectors.toList()); } + /** + * Returns all purchase transactions in a given week + * @param week int + * @return List of transaction objects + */ public List getPurchases(int week) { return transactions.stream() .filter(t -> t.getWeek() == week && t instanceof Purchase) .map(t -> (Purchase) t) .collect(Collectors.toList()); } - + /** + * Returns all sale transactions in a given week + * @param week int + * @return List of transaction objects + */ public List getSales(int week) { return transactions.stream() .filter(t -> t.getWeek() == week && t instanceof Sale) diff --git a/src/test/java/millions/CSVStockFileParserTest.java b/src/test/java/millions/controller/fileIO/CSV/CSVStockFileParserTest.java similarity index 94% rename from src/test/java/millions/CSVStockFileParserTest.java rename to src/test/java/millions/controller/fileIO/CSV/CSVStockFileParserTest.java index 8266d35..efefb7d 100644 --- a/src/test/java/millions/CSVStockFileParserTest.java +++ b/src/test/java/millions/controller/fileIO/CSV/CSVStockFileParserTest.java @@ -1,12 +1,11 @@ -package millions; +package millions.controller.fileIO.CSV; -import millions.controller.fileIO.CSV.CSVStockFileParser; import millions.controller.fileIO.InvalidFormatException; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import java.util.ArrayList; import java.util.List; @@ -18,8 +17,8 @@ public class CSVStockFileParserTest { static String exampleString; final CSVStockFileParser parser = new CSVStockFileParser(); - @BeforeAll - public static void setUpTestString() { + @BeforeEach + public void setUpTestString() { exampleString = "# Top 500 US Stocks by Market Cap\n"; exampleString += "# Ticker,Name,Price\n"; exampleString += "\n"; diff --git a/src/test/java/millions/StockFileReaderTest.java b/src/test/java/millions/controller/fileIO/CSV/StockFileReaderTest.java similarity index 96% rename from src/test/java/millions/StockFileReaderTest.java rename to src/test/java/millions/controller/fileIO/CSV/StockFileReaderTest.java index 2bc8970..159c948 100644 --- a/src/test/java/millions/StockFileReaderTest.java +++ b/src/test/java/millions/controller/fileIO/CSV/StockFileReaderTest.java @@ -1,4 +1,4 @@ -package millions; +package millions.controller.fileIO.CSV; import millions.controller.fileIO.StockFileReader; import org.junit.jupiter.api.BeforeAll; diff --git a/src/test/java/millions/ExchangeListenerTest.java b/src/test/java/millions/model/ExchangeListenerTest.java similarity index 90% rename from src/test/java/millions/ExchangeListenerTest.java rename to src/test/java/millions/model/ExchangeListenerTest.java index c47c9e8..935ab43 100644 --- a/src/test/java/millions/ExchangeListenerTest.java +++ b/src/test/java/millions/model/ExchangeListenerTest.java @@ -1,4 +1,4 @@ -package millions; +package millions.model; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -6,14 +6,7 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; -import millions.model.Exchange; -import millions.model.ExchangeListener; -import millions.model.Player; -import millions.model.Purchase; -import millions.model.Sale; -import millions.model.Share; -import millions.model.Stock; -import millions.model.Transaction; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/millions/ExchangeTest.java b/src/test/java/millions/model/ExchangeTest.java similarity index 99% rename from src/test/java/millions/ExchangeTest.java rename to src/test/java/millions/model/ExchangeTest.java index a17bb50..2e689a6 100644 --- a/src/test/java/millions/ExchangeTest.java +++ b/src/test/java/millions/model/ExchangeTest.java @@ -1,11 +1,11 @@ -package millions; +package millions.model; import static org.junit.jupiter.api.Assertions.*; import java.math.BigDecimal; import java.util.List; import java.util.stream.IntStream; -import millions.model.*; + import org.junit.jupiter.api.Test; class ExchangeTest { diff --git a/src/test/java/millions/PlayerListenerTest.java b/src/test/java/millions/model/PlayerListenerTest.java similarity index 98% rename from src/test/java/millions/PlayerListenerTest.java rename to src/test/java/millions/model/PlayerListenerTest.java index 5e2008a..71c94d6 100644 --- a/src/test/java/millions/PlayerListenerTest.java +++ b/src/test/java/millions/model/PlayerListenerTest.java @@ -1,11 +1,11 @@ -package millions; +package millions.model; import static org.junit.jupiter.api.Assertions.*; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; -import millions.model.*; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/millions/PlayerTest.java b/src/test/java/millions/model/PlayerTest.java similarity index 97% rename from src/test/java/millions/PlayerTest.java rename to src/test/java/millions/model/PlayerTest.java index 011a6fb..2cefd2d 100644 --- a/src/test/java/millions/PlayerTest.java +++ b/src/test/java/millions/model/PlayerTest.java @@ -1,9 +1,9 @@ -package millions; +package millions.model; import static org.junit.jupiter.api.Assertions.*; import java.math.BigDecimal; -import millions.model.Player; + import org.junit.jupiter.api.Test; class PlayerTest { diff --git a/src/test/java/millions/PortfolioTest.java b/src/test/java/millions/model/PortfolioTest.java similarity index 95% rename from src/test/java/millions/PortfolioTest.java rename to src/test/java/millions/model/PortfolioTest.java index b151f94..a208066 100644 --- a/src/test/java/millions/PortfolioTest.java +++ b/src/test/java/millions/model/PortfolioTest.java @@ -1,11 +1,9 @@ -package millions; +package millions.model; import static org.junit.jupiter.api.Assertions.*; import java.math.BigDecimal; -import millions.model.Portfolio; -import millions.model.Share; -import millions.model.Stock; + import org.junit.jupiter.api.Test; class PortfolioTest { diff --git a/src/test/java/millions/PurchaseTest.java b/src/test/java/millions/model/PurchaseTest.java similarity index 90% rename from src/test/java/millions/PurchaseTest.java rename to src/test/java/millions/model/PurchaseTest.java index 941ac87..3c76e85 100644 --- a/src/test/java/millions/PurchaseTest.java +++ b/src/test/java/millions/model/PurchaseTest.java @@ -1,13 +1,9 @@ -package millions; +package millions.model; import static org.junit.jupiter.api.Assertions.*; import java.math.BigDecimal; -import millions.model.Player; -import millions.model.Purchase; -import millions.model.Share; -import millions.model.Stock; import org.junit.jupiter.api.Test; class PurchaseTest { diff --git a/src/test/java/millions/SaleTest.java b/src/test/java/millions/model/SaleTest.java similarity index 88% rename from src/test/java/millions/SaleTest.java rename to src/test/java/millions/model/SaleTest.java index 2d725f4..4a8a4d1 100644 --- a/src/test/java/millions/SaleTest.java +++ b/src/test/java/millions/model/SaleTest.java @@ -1,13 +1,9 @@ -package millions; +package millions.model; import static org.junit.jupiter.api.Assertions.*; import java.math.BigDecimal; -import millions.model.Player; -import millions.model.Sale; -import millions.model.Share; -import millions.model.Stock; import org.junit.jupiter.api.Test; class SaleTest { diff --git a/src/test/java/millions/ShareTest.java b/src/test/java/millions/model/ShareTest.java similarity index 93% rename from src/test/java/millions/ShareTest.java rename to src/test/java/millions/model/ShareTest.java index 25862ee..3f82181 100644 --- a/src/test/java/millions/ShareTest.java +++ b/src/test/java/millions/model/ShareTest.java @@ -1,11 +1,9 @@ -package millions; +package millions.model; import static org.junit.jupiter.api.Assertions.*; import java.math.BigDecimal; -import millions.model.Share; -import millions.model.Stock; import org.junit.jupiter.api.Test; class ShareTest { diff --git a/src/test/java/millions/StockTest.java b/src/test/java/millions/model/StockTest.java similarity index 97% rename from src/test/java/millions/StockTest.java rename to src/test/java/millions/model/StockTest.java index 452db31..c28a6bd 100644 --- a/src/test/java/millions/StockTest.java +++ b/src/test/java/millions/model/StockTest.java @@ -1,4 +1,4 @@ -package millions; +package millions.model; import static org.junit.jupiter.api.Assertions.*; @@ -6,7 +6,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import millions.model.Stock; + import org.junit.jupiter.api.Test; class StockTest { diff --git a/src/test/java/millions/TransactionArchiveTest.java b/src/test/java/millions/model/TransactionArchiveTest.java similarity index 96% rename from src/test/java/millions/TransactionArchiveTest.java rename to src/test/java/millions/model/TransactionArchiveTest.java index c87ef93..426ed5b 100644 --- a/src/test/java/millions/TransactionArchiveTest.java +++ b/src/test/java/millions/model/TransactionArchiveTest.java @@ -1,11 +1,10 @@ -package millions; +package millions.model; import static org.junit.jupiter.api.Assertions.*; import java.math.BigDecimal; import java.util.List; -import millions.model.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/millions/calculators/PurchaseCalculatorTest.java b/src/test/java/millions/model/calculators/PurchaseCalculatorTest.java similarity index 70% rename from src/test/java/millions/calculators/PurchaseCalculatorTest.java rename to src/test/java/millions/model/calculators/PurchaseCalculatorTest.java index 2915b5e..37d8cca 100644 --- a/src/test/java/millions/calculators/PurchaseCalculatorTest.java +++ b/src/test/java/millions/model/calculators/PurchaseCalculatorTest.java @@ -1,4 +1,4 @@ -package millions.calculators; +package millions.model.calculators; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/millions/calculators/SaleCalculatorTest.java b/src/test/java/millions/model/calculators/SaleCalculatorTest.java similarity index 68% rename from src/test/java/millions/calculators/SaleCalculatorTest.java rename to src/test/java/millions/model/calculators/SaleCalculatorTest.java index 3d7cebb..ea19922 100644 --- a/src/test/java/millions/calculators/SaleCalculatorTest.java +++ b/src/test/java/millions/model/calculators/SaleCalculatorTest.java @@ -1,4 +1,4 @@ -package millions.calculators; +package millions.model.calculators; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/millions/calculators/TransactionCalculatorTest.java b/src/test/java/millions/model/calculators/TransactionCalculatorTest.java similarity index 70% rename from src/test/java/millions/calculators/TransactionCalculatorTest.java rename to src/test/java/millions/model/calculators/TransactionCalculatorTest.java index ad398f8..b65dc0e 100644 --- a/src/test/java/millions/calculators/TransactionCalculatorTest.java +++ b/src/test/java/millions/model/calculators/TransactionCalculatorTest.java @@ -1,4 +1,4 @@ -package millions.calculators; +package millions.model.calculators; import static org.junit.jupiter.api.Assertions.*;