// Path: src/test/java/nitezh/ministock/mocks/MockCache.java
// public class MockCache extends Cache {
// 
//     @Override
//     protected JSONObject loadCache() {
//         return new JSONObject();
//     }
// 
//     @Override
//     protected void persistCache(JSONObject cache) {
//     }
// }
// 
// Path: src/test/java/nitezh/ministock/mocks/MockStorage.java
// public class MockStorage implements Storage {
// 
//     @Override
//     public HashMap<String, ?> getAll() {
//         return new HashMap<>();
//     }
// 
//     @Override
//     public int getInt(String widgetSize, int defaultVal) {
//         return 0;
//     }
// 
//     @Override
//     public String getString(String key, String defaultVal) {
//         return "";
//     }
// 
//     @Override
//     public boolean getBoolean(String large_font, boolean defaultVal) {
//         return false;
//     }
// 
//     @Override
//     public void putInt(String key, int value) {
//     }
// 
//     @Override
//     public Storage putString(String key, String value) {
//         return this;
//     }
// 
//     @Override
//     public void putBoolean(String key, Boolean value) {
//     }
// 
//     @Override
//     public void putFloat(String key, Float value) {
//     }
// 
//     @Override
//     public void putLong(String key, Long value) {
//     }
// 
//     @Override
//     public void apply() {
//     }
// }
// 
// Path: src/test/java/nitezh/ministock/mocks/MockWidgetRepository.java
// public class MockWidgetRepository implements WidgetRepository {
// 
//     private HashSet<String> widgetsStockSymbols;
// 
//     @Override
//     public List<Integer> getIds() {
//         return new ArrayList<>();
//     }
// 
//     @Override
//     public boolean isEmpty() {
//         return false;
//     }
// 
//     @Override
//     public Set<String> getWidgetsStockSymbols() {
//         if (this.widgetsStockSymbols != null) {
//             return this.widgetsStockSymbols;
//         }
//         return new HashSet<>();
//     }
// 
//     public void setWidgetsStockSymbols(HashSet<String> widgetsStockSymbols) {
//         this.widgetsStockSymbols = widgetsStockSymbols;
//     }
// 
//     @Override
//     public void delWidget(int id) {
//     }
// 
//     @Override
//     public Widget getWidget(int id) {
//         return new MockWidget();
//     }
// 
//     @Override
//     public Widget addWidget(int id, int size) {
//         return this.getWidget(id);
//     }
// 
// }


import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import nitezh.ministock.mocks.MockCache;
import nitezh.ministock.mocks.MockStorage;
import nitezh.ministock.mocks.MockWidgetRepository;
import static org.junit.Assert.assertEquals;
import org.junit.After;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Test;

    @Test
    public void getQuotes() {
        // Skipif
        Assume.assumeTrue(System.getenv("TRAVIS_CI") == null);

        // Arrange
        List<String> symbols = Arrays.asList("AAPL", "GOOG", "^DJI", "^IXIC");

        // Act
        HashMap<String, StockQuote> quotes = stockRepository.getQuotes(symbols, true);

        // Assert
        assertEquals(4, quotes.size());

        StockQuote aaplQuote = quotes.get("AAPL");
        assert aaplQuote != null;
        assertEquals("AAPL", aaplQuote.getSymbol());
        Assert.assertTrue(Arrays.asList(
                "NasdaqNM",
                "NMS",
                "Nasdaq Global Select",
                "NasdaqGS").contains(aaplQuote.getExchange()));
        assertEquals("Apple Inc.", aaplQuote.getName());

        StockQuote googQuote = quotes.get("GOOG");
        assert googQuote != null;
        assertEquals("GOOG", googQuote.getSymbol());
        Assert.assertTrue(Arrays.asList(
                "NasdaqNM",
// Path: src/test/java/nitezh/ministock/mocks/MockCache.java
// public class MockCache extends Cache {
// 
//     @Override
//     protected JSONObject loadCache() {
//         return new JSONObject();
//     }
// 
//     @Override
//     protected void persistCache(JSONObject cache) {
//     }
// }
// 
// Path: src/test/java/nitezh/ministock/mocks/MockStorage.java
// public class MockStorage implements Storage {
// 
//     @Override
//     public HashMap<String, ?> getAll() {
//         return new HashMap<>();
//     }
// 
//     @Override
//     public int getInt(String widgetSize, int defaultVal) {
//         return 0;
//     }
// 
//     @Override
//     public String getString(String key, String defaultVal) {
//         return "";
//     }
// 
//     @Override
//     public boolean getBoolean(String large_font, boolean defaultVal) {
//         return false;
//     }
// 
//     @Override
//     public void putInt(String key, int value) {
//     }
// 
//     @Override
//     public Storage putString(String key, String value) {
//         return this;
//     }
// 
//     @Override
//     public void putBoolean(String key, Boolean value) {
//     }
// 
//     @Override
//     public void putFloat(String key, Float value) {
//     }
// 
//     @Override
//     public void putLong(String key, Long value) {
//     }
// 
//     @Override
//     public void apply() {
//     }
// }
// 
// Path: src/test/java/nitezh/ministock/mocks/MockWidgetRepository.java
// public class MockWidgetRepository implements WidgetRepository {
// 
//     private HashSet<String> widgetsStockSymbols;
// 
//     @Override
//     public List<Integer> getIds() {
//         return new ArrayList<>();
//     }
// 
//     @Override
//     public boolean isEmpty() {
//         return false;
//     }
// 
//     @Override
//     public Set<String> getWidgetsStockSymbols() {
//         if (this.widgetsStockSymbols != null) {
//             return this.widgetsStockSymbols;
//         }
//         return new HashSet<>();
//     }
// 
//     public void setWidgetsStockSymbols(HashSet<String> widgetsStockSymbols) {
//         this.widgetsStockSymbols = widgetsStockSymbols;
//     }
// 
//     @Override
//     public void delWidget(int id) {
//     }
// 
//     @Override
//     public Widget getWidget(int id) {
//         return new MockWidget();
//     }
// 
//     @Override
//     public Widget addWidget(int id, int size) {
//         return this.getWidget(id);
//     }
// 
// }


// Path: src/test/java/nitezh/ministock/domain/StockQuoteRepositoryTests.java
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import nitezh.ministock.mocks.MockCache;
import nitezh.ministock.mocks.MockStorage;
import nitezh.ministock.mocks.MockWidgetRepository;
import static org.junit.Assert.assertEquals;
import org.junit.After;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Test;


    @Test
    public void getQuotes() {
        // Skipif
        Assume.assumeTrue(System.getenv("TRAVIS_CI") == null);

        // Arrange
        List<String> symbols = Arrays.asList("AAPL", "GOOG", "^DJI", "^IXIC");

        // Act
        HashMap<String, StockQuote> quotes = stockRepository.getQuotes(symbols, true);

        // Assert
        assertEquals(4, quotes.size());

        StockQuote aaplQuote = quotes.get("AAPL");
        assert aaplQuote != null;
        assertEquals("AAPL", aaplQuote.getSymbol());
        Assert.assertTrue(Arrays.asList(
                "NasdaqNM",
                "NMS",
                "Nasdaq Global Select",
                "NasdaqGS").contains(aaplQuote.getExchange()));
        assertEquals("Apple Inc.", aaplQuote.getName());

        StockQuote googQuote = quotes.get("GOOG");
        assert googQuote != null;
        assertEquals("GOOG", googQuote.getSymbol());
        Assert.assertTrue(Arrays.asList(
                "NasdaqNM",
                "NMS",