From d80db1075abf76356afb89cd15c926f5529fc355 Mon Sep 17 00:00:00 2001 From: ivanmaker <43081738+ivanmaker@users.noreply.github.com> Date: Sun, 23 Sep 2018 10:56:43 -0700 Subject: [PATCH 1/9] Wk2 Exersice Commit --- WK2/SimpleMockExample-master/README.md | 1 + .../SimpleMockExample-master.zip | Bin 0 -> 7464 bytes WK2/SimpleMockExample-master/pom.xml | 49 +++++++++++++++ .../teach/mock/StockQuote.java | 54 ++++++++++++++++ .../teach/mock/StockService.java | 28 +++++++++ .../teach/mock/StockTicker.java | 53 ++++++++++++++++ .../src/main/main.iml | 11 ++++ .../teach/mock/StockTickerTest.java | 58 ++++++++++++++++++ .../src/test/test.iml | 11 ++++ WK2/StockService/StockService.iml | 34 ++++++++++ .../src/StockServices/BasicStockService.java | 24 ++++++++ .../src/StockServices/StockQuote.java | 15 +++++ .../StockServices/StockQuoteApplication.java | 35 +++++++++++ .../src/StockServices/StockService.java | 29 +++++++++ .../StockServices/StockServiceFactory.java | 14 +++++ .../src/StockServices/StockTest.java | 28 +++++++++ 16 files changed, 444 insertions(+) create mode 100644 WK2/SimpleMockExample-master/README.md create mode 100644 WK2/SimpleMockExample-master/SimpleMockExample-master.zip create mode 100644 WK2/SimpleMockExample-master/pom.xml create mode 100644 WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockQuote.java create mode 100644 WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockService.java create mode 100644 WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockTicker.java create mode 100644 WK2/SimpleMockExample-master/src/main/main.iml create mode 100644 WK2/SimpleMockExample-master/src/test/java/com/origamisoftware/teach/mock/StockTickerTest.java create mode 100644 WK2/SimpleMockExample-master/src/test/test.iml create mode 100644 WK2/StockService/StockService.iml create mode 100644 WK2/StockService/src/StockServices/BasicStockService.java create mode 100644 WK2/StockService/src/StockServices/StockQuote.java create mode 100644 WK2/StockService/src/StockServices/StockQuoteApplication.java create mode 100644 WK2/StockService/src/StockServices/StockService.java create mode 100644 WK2/StockService/src/StockServices/StockServiceFactory.java create mode 100644 WK2/StockService/src/StockServices/StockTest.java diff --git a/WK2/SimpleMockExample-master/README.md b/WK2/SimpleMockExample-master/README.md new file mode 100644 index 0000000..21d0137 --- /dev/null +++ b/WK2/SimpleMockExample-master/README.md @@ -0,0 +1 @@ +A simple project that shows the basics of Mockito diff --git a/WK2/SimpleMockExample-master/SimpleMockExample-master.zip b/WK2/SimpleMockExample-master/SimpleMockExample-master.zip new file mode 100644 index 0000000000000000000000000000000000000000..0d05cf6d93dd60159e85710bc94893e4e95da9cd GIT binary patch literal 7464 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 + 4.0.0 + com.origamisoftware.teach.mocking + starter-app + jar + 1.0-SNAPSHOT + starter-app + http://maven.apache.org + + + UTF-8 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + -Xlint + ${project.build.sourceEncoding} + 1.7 + 1.7 + + + + + + + + + junit + junit + 4.10 + jar + + + + org.mockito + mockito-all + 1.9.5 + + + + diff --git a/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockQuote.java b/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockQuote.java new file mode 100644 index 0000000..ce4d2a9 --- /dev/null +++ b/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockQuote.java @@ -0,0 +1,54 @@ +package com.origamisoftware.teach.mock; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * This class contains information about a stock. + * This class in immutable. It holds stock info for a given point time. + */ +public class StockQuote { + + private String stockSymbol; + private BigDecimal stockPrice; + private Date dateRecorded; + + + /** + * Create a new StockData instance + * @param dateRecorded the date the stock info was recorded. + * @param stockPrice the price of the stock for the provided date + * @param stockSymbol the stock symbol e.g. APPL (for APPLE) + */ + public StockQuote(Date dateRecorded, BigDecimal stockPrice, String stockSymbol) { + this.dateRecorded = dateRecorded; + this.stockPrice = stockPrice; + this.stockSymbol = stockSymbol; + } + + + /** + * + * @return the symbol that represents the company whose stock this is. + * e.g. APPL for APPLE + */ + public String getStockSymbol() { + return stockSymbol; + } + + /** + * + * @return The price of one share of stock. + */ + public BigDecimal getStockPrice() { + return stockPrice; + } + + /** + * + * @return the date of the stock price. + */ + public Date getDateRecorded() { + return dateRecorded; + } +} diff --git a/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockService.java b/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockService.java new file mode 100644 index 0000000..c3ea9ae --- /dev/null +++ b/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockService.java @@ -0,0 +1,28 @@ + + +import java.util.Date; +/** + * This interface describes an API for getting stock data. + */ +public interface StockService { + /** + * Return the StockData for the given symbol for the given date. + * Used to get history data for the stock. + * + * @param symbol the stock symbol of the company you want a quote for. + * e.g. APPL for APPLE + * @param date specifies what date to get the stock quote for. + * + * @return a StockData instance + */ + StockQuote getQuote(String symbol, Date date); +} +public class StockQuote getStockQuote (String symbol, Date date) implements StockService{ + return StockQuote; + } +public class StockServiceFactory implements StockService{ + public StockService getStockQuote(String symbol, Date date){ + + return StockService; + } +} diff --git a/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockTicker.java b/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockTicker.java new file mode 100644 index 0000000..d233762 --- /dev/null +++ b/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockTicker.java @@ -0,0 +1,53 @@ +package com.origamisoftware.teach.mock; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * This class returns information about a stock + */ +public class StockTicker { + + /* IMPORTANT NOTE - if this was 'real code' I'd be using the JODA time date library + ** it is the 'standard' library to use when dealing with dates and times in Java. + ** I am not using it here to keep things simple! + */ + + private StockService stockService; + + /** + * Create a new StockTicker instance + * + * @param stockService used to get actual stock data (external dependency) + */ + public StockTicker(StockService stockService) { + this.stockService = stockService; + } + + /** + * Get a list of stock prices for the date range specified + * + * @param symbol the stock symbol to get the price for + * @param startDate the first day to get the price for. + * @param endDate the last day to get the price for + * @return a list of StockData instances - one for each day specified + * in the date range provided. + */ + public List getStockHistory(String symbol, Date startDate, Date endDate) { + Date date = startDate; + List returnValue = new ArrayList<>(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + + while (date.before(endDate)) { + returnValue.add(stockService.getQuote(symbol, date)); + calendar.setTime(date); + calendar.add(Calendar.DAY_OF_YEAR, 1); + date = calendar.getTime(); + } + return returnValue; + } + +} diff --git a/WK2/SimpleMockExample-master/src/main/main.iml b/WK2/SimpleMockExample-master/src/main/main.iml new file mode 100644 index 0000000..908ad4f --- /dev/null +++ b/WK2/SimpleMockExample-master/src/main/main.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/WK2/SimpleMockExample-master/src/test/java/com/origamisoftware/teach/mock/StockTickerTest.java b/WK2/SimpleMockExample-master/src/test/java/com/origamisoftware/teach/mock/StockTickerTest.java new file mode 100644 index 0000000..dddf2a8 --- /dev/null +++ b/WK2/SimpleMockExample-master/src/test/java/com/origamisoftware/teach/mock/StockTickerTest.java @@ -0,0 +1,58 @@ +package com.origamisoftware.teach.mock; + +import org.junit.Test; +import org.mockito.Mockito; + +import java.math.BigDecimal; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.when; + +/** + * This test class shows how to use Mocks to test a class that has an external dependency + */ +public class StockTickerTest { + + + /** + * This method verifies that the correct number of days is returned + * by the StockTicker getStockHistory method + */ + @Test + public void testGetStockHistoryNumberOfDays() { + + /* we want to 'mock' the external dependency which is the StockService + * so that we can test just the StockTicker class. Here is how to setup the mock + */ + StockService stockServiceMock = Mockito.mock(StockService.class); + + // next create the data we expect the service to return + Date endDate = Calendar.getInstance().getTime(); + Calendar startCalendar = Calendar.getInstance(); + int NumberOfDayOfData = 15; + startCalendar.add(Calendar.DAY_OF_YEAR,-NumberOfDayOfData); + Date startDate = startCalendar.getTime(); + + String stockSymbol = "APPL"; + BigDecimal expectedPrice = new BigDecimal(100); + + // tell the mock service to return the data the getQuote() method is called with a specific symbol + when(stockServiceMock.getQuote(any(String.class),any(Date.class))).thenReturn(new StockQuote(Calendar.getInstance().getTime(), expectedPrice, stockSymbol)); + + // now create the StickTicker instance to test + StockTicker stockTicker = new StockTicker(stockServiceMock); + + // now execute the method we want to test + List stockHistory = stockTicker.getStockHistory(stockSymbol, startDate,endDate); + + // now verify that it returned the expected results. + + // there should 15 days of data + assertTrue("There should be 15 days of data", stockHistory.size() == NumberOfDayOfData); + + } +} diff --git a/WK2/SimpleMockExample-master/src/test/test.iml b/WK2/SimpleMockExample-master/src/test/test.iml new file mode 100644 index 0000000..a0e49a3 --- /dev/null +++ b/WK2/SimpleMockExample-master/src/test/test.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/WK2/StockService/StockService.iml b/WK2/StockService/StockService.iml new file mode 100644 index 0000000..929a295 --- /dev/null +++ b/WK2/StockService/StockService.iml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WK2/StockService/src/StockServices/BasicStockService.java b/WK2/StockService/src/StockServices/BasicStockService.java new file mode 100644 index 0000000..91c73a1 --- /dev/null +++ b/WK2/StockService/src/StockServices/BasicStockService.java @@ -0,0 +1,24 @@ +package StockServices; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.List; + +public class BasicStockService implements StockService { + @Override + public StockQuote getQuote(String symbol) { + StockQuote Symbol = new StockQuote(); + Symbol.getQuote(symbol); + return Symbol; + } + + @Override + public List getQuote(String symbol, Calendar startCalendar, Calendar endCalendar) { + StockQuote Quote = new StockQuote(); + Quote.getQuote(symbol, startCalendar, endCalendar); + List SQL = new ArrayList<>(Arrays.asList(Quote)); + return SQL; + } +} + diff --git a/WK2/StockService/src/StockServices/StockQuote.java b/WK2/StockService/src/StockServices/StockQuote.java new file mode 100644 index 0000000..9f4b726 --- /dev/null +++ b/WK2/StockService/src/StockServices/StockQuote.java @@ -0,0 +1,15 @@ +package StockServices; + +import java.util.Calendar; +import java.util.List; + +public class StockQuote extends StockServiceFactory implements StockService { + @Override + public StockQuote getQuote(String symbol) { + return null; + } + @Override + public List getQuote(String symbol, Calendar from, Calendar until) { + return null; + } +} diff --git a/WK2/StockService/src/StockServices/StockQuoteApplication.java b/WK2/StockService/src/StockServices/StockQuoteApplication.java new file mode 100644 index 0000000..ca9a32d --- /dev/null +++ b/WK2/StockService/src/StockServices/StockQuoteApplication.java @@ -0,0 +1,35 @@ +package StockServices; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.Scanner; + +public class StockQuoteApplication { + public static void main(String[] args) throws ParseException { + StockServiceFactory SSF = new StockServiceFactory(); + Scanner input = new Scanner(System.in); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss"); + + String symbol, startDate, endDate; + + System.out.println("What is the Stocks symbol? "); + symbol = input.nextLine(); + System.out.println("View stocks starting at what date? "); + startDate = input.nextLine(); + Date fromDate = sdf.parse(startDate); + Calendar startCalendar = Calendar.getInstance(); + startCalendar.setTime(fromDate); + + + System.out.println("End list of stocks at what date? "); + endDate = input.nextLine(); + Date toDate = sdf.parse(endDate); + Calendar endCalendar = Calendar.getInstance(); + endCalendar.setTime(toDate); + + SSF.getStockService(symbol, startCalendar, endCalendar); + System.out.println(SSF); + } +} diff --git a/WK2/StockService/src/StockServices/StockService.java b/WK2/StockService/src/StockServices/StockService.java new file mode 100644 index 0000000..92ffc55 --- /dev/null +++ b/WK2/StockService/src/StockServices/StockService.java @@ -0,0 +1,29 @@ +package StockServices; + +import java.util.Calendar; +import java.util.List; + +public interface StockService { + /** + * Return the current price for a share o + f stock for the + * given symbol + * @param symbol the stock symbol of the company you want a + * quote for e.g. APPL for APPLE + * @return a BigDecimal instance + */ + StockQuote getQuote(String symbol); + /** + * Get a histo + rical list of stock quotes for the provided + * symbol + * @param symbol the stock symbol to search for + * @param from the date of the first stock quote + * @param until the date of the last stock quote + * @return a list of StockQuote instan + ces. + * One for each day in the range specified. + */ + List getQuote(String symbol, Calendar from, + Calendar until); +} diff --git a/WK2/StockService/src/StockServices/StockServiceFactory.java b/WK2/StockService/src/StockServices/StockServiceFactory.java new file mode 100644 index 0000000..da73ca9 --- /dev/null +++ b/WK2/StockService/src/StockServices/StockServiceFactory.java @@ -0,0 +1,14 @@ +package StockServices; + +import java.util.Calendar; +import java.util.List; + +public class StockServiceFactory extends BasicStockService{ + public StockServiceFactory getStockService(String symbol, Calendar fromDate, Calendar toDate){ + BasicStockService BSS = new BasicStockService(); + StockQuote SQ; + SQ = (StockQuote) BSS.getQuote(symbol, fromDate, toDate); + return SQ; + /*returs stock service*/ + } +} diff --git a/WK2/StockService/src/StockServices/StockTest.java b/WK2/StockService/src/StockServices/StockTest.java new file mode 100644 index 0000000..605d28a --- /dev/null +++ b/WK2/StockService/src/StockServices/StockTest.java @@ -0,0 +1,28 @@ +package StockServices; + +public class StockTest { + + @org.junit.jupiter.api.Test + void getQuote() { + } + + @org.junit.jupiter.api.Test + void getQuote1() { + } + + @org.junit.jupiter.api.Test + void getStockService() { + } + + @org.junit.jupiter.api.Test + void getQuote2() { + } + + @org.junit.jupiter.api.Test + void getQuote3() { + } + + @org.junit.jupiter.api.Test + void main() { + } +} From 02e281c5194228be21e60dfccaa380b8d6a3abc5 Mon Sep 17 00:00:00 2001 From: ivanmaker <43081738+ivanmaker@users.noreply.github.com> Date: Tue, 25 Sep 2018 17:26:09 -0700 Subject: [PATCH 2/9] Delete README.md --- WK2/SimpleMockExample-master/README.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 WK2/SimpleMockExample-master/README.md diff --git a/WK2/SimpleMockExample-master/README.md b/WK2/SimpleMockExample-master/README.md deleted file mode 100644 index 21d0137..0000000 --- a/WK2/SimpleMockExample-master/README.md +++ /dev/null @@ -1 +0,0 @@ -A simple project that shows the basics of Mockito From c449e3537f102d092eb01291b74891da018b6e7d Mon Sep 17 00:00:00 2001 From: ivanmaker <43081738+ivanmaker@users.noreply.github.com> Date: Tue, 25 Sep 2018 17:26:24 -0700 Subject: [PATCH 3/9] Delete pom.xml --- WK2/SimpleMockExample-master/pom.xml | 49 ---------------------------- 1 file changed, 49 deletions(-) delete mode 100644 WK2/SimpleMockExample-master/pom.xml diff --git a/WK2/SimpleMockExample-master/pom.xml b/WK2/SimpleMockExample-master/pom.xml deleted file mode 100644 index f68dedd..0000000 --- a/WK2/SimpleMockExample-master/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ - - 4.0.0 - com.origamisoftware.teach.mocking - starter-app - jar - 1.0-SNAPSHOT - starter-app - http://maven.apache.org - - - UTF-8 - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - -Xlint - ${project.build.sourceEncoding} - 1.7 - 1.7 - - - - - - - - - junit - junit - 4.10 - jar - - - - org.mockito - mockito-all - 1.9.5 - - - - From 160de14cd30fd3aa5e970490b71dd854d8054a41 Mon Sep 17 00:00:00 2001 From: ivanmaker <43081738+ivanmaker@users.noreply.github.com> Date: Tue, 25 Sep 2018 17:26:30 -0700 Subject: [PATCH 4/9] Delete StockQuote.java --- .../teach/mock/StockQuote.java | 54 ------------------- 1 file changed, 54 deletions(-) delete mode 100644 WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockQuote.java diff --git a/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockQuote.java b/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockQuote.java deleted file mode 100644 index ce4d2a9..0000000 --- a/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockQuote.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.origamisoftware.teach.mock; - -import java.math.BigDecimal; -import java.util.Date; - -/** - * This class contains information about a stock. - * This class in immutable. It holds stock info for a given point time. - */ -public class StockQuote { - - private String stockSymbol; - private BigDecimal stockPrice; - private Date dateRecorded; - - - /** - * Create a new StockData instance - * @param dateRecorded the date the stock info was recorded. - * @param stockPrice the price of the stock for the provided date - * @param stockSymbol the stock symbol e.g. APPL (for APPLE) - */ - public StockQuote(Date dateRecorded, BigDecimal stockPrice, String stockSymbol) { - this.dateRecorded = dateRecorded; - this.stockPrice = stockPrice; - this.stockSymbol = stockSymbol; - } - - - /** - * - * @return the symbol that represents the company whose stock this is. - * e.g. APPL for APPLE - */ - public String getStockSymbol() { - return stockSymbol; - } - - /** - * - * @return The price of one share of stock. - */ - public BigDecimal getStockPrice() { - return stockPrice; - } - - /** - * - * @return the date of the stock price. - */ - public Date getDateRecorded() { - return dateRecorded; - } -} From 10497a43cc101871e3796d3d516b074631e21143 Mon Sep 17 00:00:00 2001 From: ivanmaker <43081738+ivanmaker@users.noreply.github.com> Date: Tue, 25 Sep 2018 17:26:37 -0700 Subject: [PATCH 5/9] Delete StockService.java --- .../teach/mock/StockService.java | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockService.java diff --git a/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockService.java b/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockService.java deleted file mode 100644 index c3ea9ae..0000000 --- a/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockService.java +++ /dev/null @@ -1,28 +0,0 @@ - - -import java.util.Date; -/** - * This interface describes an API for getting stock data. - */ -public interface StockService { - /** - * Return the StockData for the given symbol for the given date. - * Used to get history data for the stock. - * - * @param symbol the stock symbol of the company you want a quote for. - * e.g. APPL for APPLE - * @param date specifies what date to get the stock quote for. - * - * @return a StockData instance - */ - StockQuote getQuote(String symbol, Date date); -} -public class StockQuote getStockQuote (String symbol, Date date) implements StockService{ - return StockQuote; - } -public class StockServiceFactory implements StockService{ - public StockService getStockQuote(String symbol, Date date){ - - return StockService; - } -} From 5d76b34719bc7cc45b24ab584e2eb9ae84a9dd80 Mon Sep 17 00:00:00 2001 From: ivanmaker <43081738+ivanmaker@users.noreply.github.com> Date: Tue, 25 Sep 2018 17:26:44 -0700 Subject: [PATCH 6/9] Delete StockTicker.java --- .../teach/mock/StockTicker.java | 53 ------------------- 1 file changed, 53 deletions(-) delete mode 100644 WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockTicker.java diff --git a/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockTicker.java b/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockTicker.java deleted file mode 100644 index d233762..0000000 --- a/WK2/SimpleMockExample-master/src/main/java/com/origamisoftware/teach/mock/StockTicker.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.origamisoftware.teach.mock; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - -/** - * This class returns information about a stock - */ -public class StockTicker { - - /* IMPORTANT NOTE - if this was 'real code' I'd be using the JODA time date library - ** it is the 'standard' library to use when dealing with dates and times in Java. - ** I am not using it here to keep things simple! - */ - - private StockService stockService; - - /** - * Create a new StockTicker instance - * - * @param stockService used to get actual stock data (external dependency) - */ - public StockTicker(StockService stockService) { - this.stockService = stockService; - } - - /** - * Get a list of stock prices for the date range specified - * - * @param symbol the stock symbol to get the price for - * @param startDate the first day to get the price for. - * @param endDate the last day to get the price for - * @return a list of StockData instances - one for each day specified - * in the date range provided. - */ - public List getStockHistory(String symbol, Date startDate, Date endDate) { - Date date = startDate; - List returnValue = new ArrayList<>(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - - while (date.before(endDate)) { - returnValue.add(stockService.getQuote(symbol, date)); - calendar.setTime(date); - calendar.add(Calendar.DAY_OF_YEAR, 1); - date = calendar.getTime(); - } - return returnValue; - } - -} From bcf90bc0cc1f1789ffe7b116aac666b214c03072 Mon Sep 17 00:00:00 2001 From: ivanmaker <43081738+ivanmaker@users.noreply.github.com> Date: Tue, 25 Sep 2018 17:27:01 -0700 Subject: [PATCH 7/9] Delete main.iml --- WK2/SimpleMockExample-master/src/main/main.iml | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 WK2/SimpleMockExample-master/src/main/main.iml diff --git a/WK2/SimpleMockExample-master/src/main/main.iml b/WK2/SimpleMockExample-master/src/main/main.iml deleted file mode 100644 index 908ad4f..0000000 --- a/WK2/SimpleMockExample-master/src/main/main.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file From 2cf7915c11aeb2deea9d1d5be53a0d4f528b4652 Mon Sep 17 00:00:00 2001 From: ivanmaker <43081738+ivanmaker@users.noreply.github.com> Date: Tue, 25 Sep 2018 17:27:07 -0700 Subject: [PATCH 8/9] Delete StockTickerTest.java --- .../teach/mock/StockTickerTest.java | 58 ------------------- 1 file changed, 58 deletions(-) delete mode 100644 WK2/SimpleMockExample-master/src/test/java/com/origamisoftware/teach/mock/StockTickerTest.java diff --git a/WK2/SimpleMockExample-master/src/test/java/com/origamisoftware/teach/mock/StockTickerTest.java b/WK2/SimpleMockExample-master/src/test/java/com/origamisoftware/teach/mock/StockTickerTest.java deleted file mode 100644 index dddf2a8..0000000 --- a/WK2/SimpleMockExample-master/src/test/java/com/origamisoftware/teach/mock/StockTickerTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.origamisoftware.teach.mock; - -import org.junit.Test; -import org.mockito.Mockito; - -import java.math.BigDecimal; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.when; - -/** - * This test class shows how to use Mocks to test a class that has an external dependency - */ -public class StockTickerTest { - - - /** - * This method verifies that the correct number of days is returned - * by the StockTicker getStockHistory method - */ - @Test - public void testGetStockHistoryNumberOfDays() { - - /* we want to 'mock' the external dependency which is the StockService - * so that we can test just the StockTicker class. Here is how to setup the mock - */ - StockService stockServiceMock = Mockito.mock(StockService.class); - - // next create the data we expect the service to return - Date endDate = Calendar.getInstance().getTime(); - Calendar startCalendar = Calendar.getInstance(); - int NumberOfDayOfData = 15; - startCalendar.add(Calendar.DAY_OF_YEAR,-NumberOfDayOfData); - Date startDate = startCalendar.getTime(); - - String stockSymbol = "APPL"; - BigDecimal expectedPrice = new BigDecimal(100); - - // tell the mock service to return the data the getQuote() method is called with a specific symbol - when(stockServiceMock.getQuote(any(String.class),any(Date.class))).thenReturn(new StockQuote(Calendar.getInstance().getTime(), expectedPrice, stockSymbol)); - - // now create the StickTicker instance to test - StockTicker stockTicker = new StockTicker(stockServiceMock); - - // now execute the method we want to test - List stockHistory = stockTicker.getStockHistory(stockSymbol, startDate,endDate); - - // now verify that it returned the expected results. - - // there should 15 days of data - assertTrue("There should be 15 days of data", stockHistory.size() == NumberOfDayOfData); - - } -} From 938e47b3b55d94c9bef1d04edd5bc1962f754667 Mon Sep 17 00:00:00 2001 From: ivanmaker <43081738+ivanmaker@users.noreply.github.com> Date: Tue, 25 Sep 2018 17:27:13 -0700 Subject: [PATCH 9/9] Delete test.iml --- WK2/SimpleMockExample-master/src/test/test.iml | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 WK2/SimpleMockExample-master/src/test/test.iml diff --git a/WK2/SimpleMockExample-master/src/test/test.iml b/WK2/SimpleMockExample-master/src/test/test.iml deleted file mode 100644 index a0e49a3..0000000 --- a/WK2/SimpleMockExample-master/src/test/test.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file