// 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: api/src/main/java/com/coinbase/exchange/api/useraccount/UserAccountData.java
// public class UserAccountData {
// 
//     String product_id;
//     BigDecimal exchange_volume;
//     BigDecimal volume;
//     String recorded_at;
// 
//     public UserAccountData() {}
// 
//     public UserAccountData(String product_id, BigDecimal exchange_volume, BigDecimal volume, String recorded_at) {
//         this.product_id = product_id;
//         this.exchange_volume = exchange_volume;
//         this.volume = volume;
//         this.recorded_at = recorded_at;
//     }
// 
//     public String getProduct_id() {
//         return product_id;
//     }
// 
//     public void setProduct_id(String product_id) {
//         this.product_id = product_id;
//     }
// 
//     public BigDecimal getExchange_volume() {
//         return exchange_volume;
//     }
// 
//     public void setExchange_volume(BigDecimal exchange_volume) {
//         this.exchange_volume = exchange_volume;
//     }
// 
//     public BigDecimal getVolume() {
//         return volume;
//     }
// 
//     public void setVolume(BigDecimal volume) {
//         this.volume = volume;
//     }
// 
//     public String getRecorded_at() {
//         return recorded_at;
//     }
// 
//     public void setRecorded_at(String recorded_at) {
//         this.recorded_at = recorded_at;
//     }
// }


import com.coinbase.exchange.api.BaseIntegrationTest;
import com.coinbase.exchange.api.config.IntegrationTestConfiguration;
import com.coinbase.exchange.api.useraccount.UserAccountData;
import com.coinbase.exchange.api.useraccount.UserAccountService;
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.util.List;
import static org.junit.jupiter.api.Assertions.assertNotNull;
package com.coinbase.exchange.api.accounts;




/**
 * See class doc for BaseIntegrationTest
 */
@ExtendWith(SpringExtension.class)
@Import({IntegrationTestConfiguration.class})
public class UserAccountServiceIntegrationTest extends BaseIntegrationTest {

    UserAccountService userAccountService;

    @BeforeEach
    void setUp() {
        this.userAccountService = new UserAccountService(exchange);
    }

    /**
     * Trailing volume could be empty so all we have to do is make sure it's not returning null
     */
    @Test
// 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: api/src/main/java/com/coinbase/exchange/api/useraccount/UserAccountData.java
// public class UserAccountData {
// 
//     String product_id;
//     BigDecimal exchange_volume;
//     BigDecimal volume;
//     String recorded_at;
// 
//     public UserAccountData() {}
// 
//     public UserAccountData(String product_id, BigDecimal exchange_volume, BigDecimal volume, String recorded_at) {
//         this.product_id = product_id;
//         this.exchange_volume = exchange_volume;
//         this.volume = volume;
//         this.recorded_at = recorded_at;
//     }
// 
//     public String getProduct_id() {
//         return product_id;
//     }
// 
//     public void setProduct_id(String product_id) {
//         this.product_id = product_id;
//     }
// 
//     public BigDecimal getExchange_volume() {
//         return exchange_volume;
//     }
// 
//     public void setExchange_volume(BigDecimal exchange_volume) {
//         this.exchange_volume = exchange_volume;
//     }
// 
//     public BigDecimal getVolume() {
//         return volume;
//     }
// 
//     public void setVolume(BigDecimal volume) {
//         this.volume = volume;
//     }
// 
//     public String getRecorded_at() {
//         return recorded_at;
//     }
// 
//     public void setRecorded_at(String recorded_at) {
//         this.recorded_at = recorded_at;
//     }
// }


// Path: api/src/test/java/com/coinbase/exchange/api/accounts/UserAccountServiceIntegrationTest.java
import com.coinbase.exchange.api.BaseIntegrationTest;
import com.coinbase.exchange.api.config.IntegrationTestConfiguration;
import com.coinbase.exchange.api.useraccount.UserAccountData;
import com.coinbase.exchange.api.useraccount.UserAccountService;
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.util.List;
import static org.junit.jupiter.api.Assertions.assertNotNull;

package com.coinbase.exchange.api.accounts;




/**
 * See class doc for BaseIntegrationTest
 */
@ExtendWith(SpringExtension.class)
@Import({IntegrationTestConfiguration.class})
public class UserAccountServiceIntegrationTest extends BaseIntegrationTest {

    UserAccountService userAccountService;

    @BeforeEach
    void setUp() {
        this.userAccountService = new UserAccountService(exchange);
    }

    /**
     * Trailing volume could be empty so all we have to do is make sure it's not returning null
     */
    @Test
    public void getTrailingVolume(){