// Path: api/src/test/java/com/coinbase/exchange/api/BaseIntegrationTest.java
// @SpringBootTest(properties = {
//                     "spring.profiles.active=test"
//                 })
// public abstract class BaseIntegrationTest {
// 
//     @Autowired
//     public CoinbaseExchange exchange;
// }
// 
// Path: api/src/test/java/com/coinbase/exchange/api/config/IntegrationTestConfiguration.java
// @SpringBootConfiguration
// public class IntegrationTestConfiguration {
// 
//     @Bean
//     public ObjectMapper objectMapper() {
//         return new ObjectMapper().registerModule(new JavaTimeModule());
//     }
// 
//     @Bean
//     public CoinbaseExchange coinbaseExchange(@Value("${exchange.key}") String apiKey,
//                                              @Value("${exchange.passphrase}") String passphrase,
//                                              @Value("${exchange.api.baseUrl}") String baseUrl,
//                                              @Value("${exchange.secret}") String secretKey,
//                                              ObjectMapper objectMapper) {
//         return new CoinbaseExchangeImpl(apiKey,
//                 passphrase,
//                 baseUrl,
//                 new Signature(secretKey),
//                 objectMapper);
//     }
// 
// }
// 
// Path: model/src/main/java/com/coinbase/exchange/model/Candles.java
// public class Candles {
// 
//     List<Candle> candleList;
// 
//     public Candles(List<String[]> candles) {
//         this.candleList = candles.stream().map(Candle::new).collect(Collectors.toList());
//     }
// 
//     public List<Candle> getCandleList() {
//         return candleList;
//     }
// }
// 
// Path: model/src/main/java/com/coinbase/exchange/model/Granularity.java
// public enum Granularity {
//     ONE_DAY("1d"),
//     SIX_HOURS("6h"),
//     ONE_HOUR("1h"),
//     FIFTEEN_MIN("15m"),
//     FIVE_MIN("5m"),
//     ONE_MIN("1m");
// 
//     private String granularity;
// 
//     Granularity(String granularity) {
//         this.granularity = granularity;
//     }
// 
//     /**
//      * The granularity field must be one of the following values:
//      * {60, 300, 900, 3600, 21600, 86400}.
//      */
//     public String get(){
//         switch(granularity) {
//             case "1d": return "86400";
//             case "6h": return "21600";
//             case "1h": return "3600";
//             case "15m": return "900";
//             case "5m": return "300";
//             case "1m": return "60";
//         }
//         return "";
//     }
// }


import com.coinbase.exchange.api.BaseIntegrationTest;
import com.coinbase.exchange.api.config.IntegrationTestConfiguration;
import com.coinbase.exchange.model.Candles;
import com.coinbase.exchange.model.Granularity;
import com.coinbase.exchange.model.Product;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.time.Duration;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
package com.coinbase.exchange.api.products;




/**
 * See class doc for BaseIntegrationTest
 * <p>
 * Created by robevansuk on 08/02/2017.
 */
@ExtendWith(SpringExtension.class)
@Import({IntegrationTestConfiguration.class})
// Path: api/src/test/java/com/coinbase/exchange/api/BaseIntegrationTest.java
// @SpringBootTest(properties = {
//                     "spring.profiles.active=test"
//                 })
// public abstract class BaseIntegrationTest {
// 
//     @Autowired
//     public CoinbaseExchange exchange;
// }
// 
// Path: api/src/test/java/com/coinbase/exchange/api/config/IntegrationTestConfiguration.java
// @SpringBootConfiguration
// public class IntegrationTestConfiguration {
// 
//     @Bean
//     public ObjectMapper objectMapper() {
//         return new ObjectMapper().registerModule(new JavaTimeModule());
//     }
// 
//     @Bean
//     public CoinbaseExchange coinbaseExchange(@Value("${exchange.key}") String apiKey,
//                                              @Value("${exchange.passphrase}") String passphrase,
//                                              @Value("${exchange.api.baseUrl}") String baseUrl,
//                                              @Value("${exchange.secret}") String secretKey,
//                                              ObjectMapper objectMapper) {
//         return new CoinbaseExchangeImpl(apiKey,
//                 passphrase,
//                 baseUrl,
//                 new Signature(secretKey),
//                 objectMapper);
//     }
// 
// }
// 
// Path: model/src/main/java/com/coinbase/exchange/model/Candles.java
// public class Candles {
// 
//     List<Candle> candleList;
// 
//     public Candles(List<String[]> candles) {
//         this.candleList = candles.stream().map(Candle::new).collect(Collectors.toList());
//     }
// 
//     public List<Candle> getCandleList() {
//         return candleList;
//     }
// }
// 
// Path: model/src/main/java/com/coinbase/exchange/model/Granularity.java
// public enum Granularity {
//     ONE_DAY("1d"),
//     SIX_HOURS("6h"),
//     ONE_HOUR("1h"),
//     FIFTEEN_MIN("15m"),
//     FIVE_MIN("5m"),
//     ONE_MIN("1m");
// 
//     private String granularity;
// 
//     Granularity(String granularity) {
//         this.granularity = granularity;
//     }
// 
//     /**
//      * The granularity field must be one of the following values:
//      * {60, 300, 900, 3600, 21600, 86400}.
//      */
//     public String get(){
//         switch(granularity) {
//             case "1d": return "86400";
//             case "6h": return "21600";
//             case "1h": return "3600";
//             case "15m": return "900";
//             case "5m": return "300";
//             case "1m": return "60";
//         }
//         return "";
//     }
// }


// Path: api/src/test/java/com/coinbase/exchange/api/products/ProductsIntegrationTest.java
import com.coinbase.exchange.api.BaseIntegrationTest;
import com.coinbase.exchange.api.config.IntegrationTestConfiguration;
import com.coinbase.exchange.model.Candles;
import com.coinbase.exchange.model.Granularity;
import com.coinbase.exchange.model.Product;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.time.Duration;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;

package com.coinbase.exchange.api.products;




/**
 * See class doc for BaseIntegrationTest
 * <p>
 * Created by robevansuk on 08/02/2017.
 */
@ExtendWith(SpringExtension.class)
@Import({IntegrationTestConfiguration.class})
public class ProductsIntegrationTest extends BaseIntegrationTest {