Skip to content

Commit

Permalink
DTO tests #881
Browse files Browse the repository at this point in the history
  • Loading branch information
straumat committed Feb 23, 2022
1 parent 0839830 commit 9297bc2
Show file tree
Hide file tree
Showing 9 changed files with 59 additions and 50 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
@SuppressWarnings("checkstyle:VisibilityModifier")
public class GainDTO {

/** Zero constant. */
/** Zero gain constant. */
public static final GainDTO ZERO = GainDTO.builder()
.percentage(0)
.amount(CurrencyAmountDTO.ZERO)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,22 @@ public class AccountDTOTest {

@Test
@DisplayName("Check equals() on account id & name")
public void checkEqualToForAccountIdAndName() {
public void checkEqualsOnAccountIdAndName() {
// Account 1 (null).
AccountDTO account1 = AccountDTO.builder().accountId(null).name(null).build();
// Account 2.
AccountDTO account2 = AccountDTO.builder().accountId("01").name("01").build();
assertNotEquals(account2, account1);
assertNotEquals(account1, account2);
// Account 3 - Same.
// Account 3 - Same as account2.
AccountDTO account3 = AccountDTO.builder().accountId("01").name("01").build();
assertEquals(account2, account3);
assertEquals(account3, account2);
// Account 4 - id changed.
// Account 4 - id changed compared to account 2.
AccountDTO account4 = AccountDTO.builder().accountId("CHANGED").name("01").build();
assertNotEquals(account2, account4);
assertNotEquals(account4, account2);
// Account 5 - Name changed.
// Account 5 - Name changed compared to account 2.
AccountDTO account5 = AccountDTO.builder().accountId("01").name("CHANGED").build();
assertNotEquals(account2, account5);
assertNotEquals(account5, account2);
Expand All @@ -57,26 +57,26 @@ public void checkEqualToForBalancesList() {
assertNotEquals(account2, account1);

// Account 3 - One ETH & one BTC.
balances.add(BalanceDTO.builder().build());
balances.add(BalanceDTO.builder().build());
balances.add(BalanceDTO.builder().currency(ETH).build());
balances.add(BalanceDTO.builder().currency(BTC).build());
AccountDTO account3 = AccountDTO.builder().balances(balances).build();
balances.clear();

// Account 4 - One BTC & one ETH (inverted compared to account 3).
balances.add(BalanceDTO.builder().build());
balances.add(BalanceDTO.builder().build());
balances.add(BalanceDTO.builder().currency(BTC).build());
balances.add(BalanceDTO.builder().currency(ETH).build());
AccountDTO account4 = AccountDTO.builder().balances(balances).build();
balances.clear();
assertEquals(account3, account4);
assertEquals(account4, account3);

// Account 5 - One BTC & one USDT (inverted).
balances.add(BalanceDTO.builder().build());
balances.add(BalanceDTO.builder().build());
balances.add(BalanceDTO.builder().currency(BTC).build());
balances.add(BalanceDTO.builder().currency(USDT).build());
AccountDTO account5 = AccountDTO.builder().balances(balances).build();
balances.clear();
assertEquals(account4, account5);
assertEquals(account5, account4);
assertNotEquals(account4, account5);
assertNotEquals(account5, account4);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
public class EqualsBuilderTest {

@Test
@DisplayName("Check equals on strings")
@DisplayName("Check equals() on strings")
public void checkStringEquals() {
boolean result;

// Two null strings -> Equals.
result = new EqualsBuilder().append(null, null).isEquals();
assertTrue(result);

// First object null and second is also not null -> Not equals.
// First object null and second is not null -> Not equals.
result = new EqualsBuilder().append(null, "e").isEquals();
assertFalse(result);

Expand Down Expand Up @@ -57,18 +57,26 @@ public void checkStringEquals() {
}

@Test
@DisplayName("Check equals on BigDecimal")
@DisplayName("Check equals() on BigDecimal")
public void checkBigDecimalEquals() {
boolean result;

// BigDecimal & null.
result = new EqualsBuilder().append(new BigDecimal("1.00000"), null).isEquals();
assertFalse(result);

// BigDecimal & null.
result = new EqualsBuilder().append(null, new BigDecimal("1.00000")).isEquals();
assertFalse(result);

// Same BigDecimal but with a different format.
result = new EqualsBuilder().append(new BigDecimal("1.00000"), new BigDecimal("1")).isEquals();
assertTrue(result);

// Same BigDecimal but with a different format.
result = new EqualsBuilder().append(new BigDecimal("1.10000"), new BigDecimal("1.1")).isEquals();
assertTrue(result);

// Two different BigDecimals.
result = new EqualsBuilder().append(new BigDecimal("1.00000"), new BigDecimal("1.1")).isEquals();
assertFalse(result);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,27 +23,23 @@ public class GainDTOTest {
@Test
@DisplayName("Check toString() method")
public void checkToString() {
// Testing zero gain constant toString().
final GainDTO gain1 = GainDTO.ZERO;
assertEquals("No gain", gain1.toString());
assertEquals(0, gain1.getOrdersFees().size());

// We create a complete complex gain.
final GainDTO gain2 = GainDTO.builder()
.percentage(1)
.amount(new CurrencyAmountDTO(new BigDecimal("2"), BTC))
// Opening order fees.
// 4.6 BTC
// 0.5 ETH
// 3 KCS
// Opening order fees (4.6 BTC, 0.5 ETH, 3 KCS).
.openingOrderFee(new CurrencyAmountDTO(new BigDecimal("1.5"), BTC))
.openingOrderFee(new CurrencyAmountDTO(new BigDecimal("0.5"), ETH))
.openingOrderFee(new CurrencyAmountDTO(new BigDecimal("3.1"), BTC))
.openingOrderFee(new CurrencyAmountDTO(new BigDecimal("0.5"), ETH))
.openingOrderFee(new CurrencyAmountDTO(new BigDecimal("3"), KCS))
// Closing order fees.
// 0.8 ETH
// 0.1 BTC
// 0.9 USDT
.closingOrderFee(new CurrencyAmountDTO(new BigDecimal("0.8"), ETH))
// Closing order fees(0.1 BTC, 0.8 ETH, 0.9 USDT).
.closingOrderFee(new CurrencyAmountDTO(new BigDecimal("0.1"), BTC))
.closingOrderFee(new CurrencyAmountDTO(new BigDecimal("0.8"), ETH))
.closingOrderFee(new CurrencyAmountDTO(new BigDecimal("0.9"), USDT))
.build();

Expand All @@ -60,7 +56,6 @@ public void checkToString() {
assertEquals(0, new BigDecimal("1.3").compareTo(ordersFees.get(ETH).getValue()));
assertEquals(0, new BigDecimal("3").compareTo(ordersFees.get(KCS).getValue()));
assertEquals(0, new BigDecimal("0.9").compareTo(ordersFees.get(USDT).getValue()));

}

@Test
Expand All @@ -83,6 +78,7 @@ public void checkIsInferiorTO() {

assertFalse(gain.isInferiorTo(inferiorGain));
assertTrue(gain.isInferiorTo(superiorGain));
assertFalse(gain.isInferiorTo(GainDTO.ZERO));
}

@Test
Expand All @@ -105,6 +101,7 @@ public void isSuperiorTo() {

assertTrue(gain.isSuperiorTo(inferiorGain));
assertFalse(gain.isSuperiorTo(superiorGain));
assertTrue(gain.isSuperiorTo(GainDTO.ZERO));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ public void checkEqualToForOrder() {
assertNotEquals(order01, order13);
assertNotEquals(order13, order01);

// Tests for null objects.
// Tests for empty objects.
OrderDTO order15 = OrderDTO.builder().build();
OrderDTO order16 = OrderDTO.builder().build();
assertEquals(order15, order16);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public void checkSuccessfulPositionCreation() {
OrderDTO o = OrderDTO.builder().orderId("2").build();
PositionDTO p = PositionDTO.builder().uid(1).openingOrder(o).build();
final PositionCreationResultDTO result = new PositionCreationResultDTO(p);
// Testing result values.
assertEquals(1, result.getPosition().getUid());
assertEquals("2", result.getPosition().getOpeningOrder().getOrderId());
assertTrue(result.isSuccessful());
Expand All @@ -27,11 +28,12 @@ public void checkSuccessfulPositionCreation() {
@Test
@DisplayName("Check unsuccessful position creation")
public void checkUnsuccessfulPositionCreation() {
final PositionCreationResultDTO p = new PositionCreationResultDTO("Error message", new RuntimeException("Exception"));
assertEquals("Error message", p.getErrorMessage());
assertEquals(RuntimeException.class, p.getException().getClass());
assertEquals("Exception", p.getException().getMessage());
assertFalse(p.isSuccessful());
final PositionCreationResultDTO result = new PositionCreationResultDTO("Error message", new RuntimeException("Exception"));
// Testing result values.
assertEquals("Error message", result.getErrorMessage());
assertEquals(RuntimeException.class, result.getException().getClass());
assertEquals("Exception", result.getException().getMessage());
assertFalse(result.isSuccessful());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

@DisplayName("DTO - PositionRulesDTO")
Expand All @@ -14,51 +15,59 @@ public class PositionRulesDTOTest {
@Test
@DisplayName("Check no rules & toString()")
public void checkNoRules() {
// Position creation.
// Position rules creation.
PositionRulesDTO p = PositionRulesDTO.builder().build();
// Tests.
assertFalse(p.isStopGainPercentageSet());
assertNull(p.getStopGainPercentage());
assertFalse(p.isStopLossPercentageSet());
assertNull(p.getStopLossPercentage());
assertEquals("No rules", p.toString());
}

@Test
@DisplayName("Check stop gain rule & toString()")
public void checkStopGainRule() {
// Position creation.
// Position rules creation.
PositionRulesDTO p = PositionRulesDTO.builder()
.stopGainPercentage(1f)
.build();
// Tests.
assertTrue(p.isStopGainPercentageSet());
assertEquals(1f, p.getStopGainPercentage());
assertFalse(p.isStopLossPercentageSet());
assertNull(p.getStopLossPercentage());
assertEquals("Stop gain at 1 %", p.toString());
}

@Test
@DisplayName("Check stop loss rule & toString()")
public void checkStopLossRule() {
// Position creation.
// Position rules creation.
PositionRulesDTO p = PositionRulesDTO.builder()
.stopLossPercentage(2f)
.build();
// Tests.
assertFalse(p.isStopGainPercentageSet());
assertNull(p.getStopGainPercentage());
assertTrue(p.isStopLossPercentageSet());
assertEquals(2f, p.getStopLossPercentage());
assertEquals("Stop loss at 2 %", p.toString());
}

@Test
@DisplayName("Check All rules & toString()")
public void checkAllRules() {
// Position creation.
@DisplayName("Check both rules & toString()")
public void checkBothRules() {
// Position rules creation.
PositionRulesDTO p = PositionRulesDTO.builder()
.stopGainPercentage(10f)
.stopLossPercentage(11f)
.build();
// Tests.
assertTrue(p.isStopGainPercentageSet());
assertEquals(10f, p.getStopGainPercentage());
assertTrue(p.isStopLossPercentageSet());
assertEquals(11f, p.getStopLossPercentage());
assertEquals("Stop gain at 10 % / Stop loss at 11 %", p.toString());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ public void checkEqualToForTickers() {
ZonedDateTime date1 = createZonedDateTime("23-09-2017");
ZonedDateTime date2 = createZonedDateTime("02-10-2018");

// Rules: Ticker equality is based on currency pair and date only.

// Ticker 1 - ETH/BTC, date1, 1 BTC.
TickerDTO t01 = TickerDTO.builder().currencyPair(ETH_BTC).timestamp(date1).last(new BigDecimal("1")).build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class TradeDTOTest {
@Test
@DisplayName("Check equals()")
public void checkEqualToForTrades() {
// Test that only id is important when testing equality.
// Test that only tradeId is important when testing equality.
TradeDTO t1 = TradeDTO.builder()
.tradeId("0000001")
.build();
Expand All @@ -36,20 +36,11 @@ public void checkEqualToForTrades() {
.build();
assertNotEquals(t1, t1Bis);

// Test that the id makes the trade different.
// Test that the tradeId makes the trade different.
TradeDTO t2 = TradeDTO.builder()
.tradeId("0000002")
.build();
assertNotEquals(t1, t2);
}

@Test
@DisplayName("Check null trades")
public void checkNullTrades() {
TradeDTO t1 = TradeDTO.builder().tradeId("0000001").build();
TradeDTO t2 = TradeDTO.builder().tradeId("0000002").build();
assertNotEquals(t1, t2);
assertNotEquals(t2, t1);
}

}

0 comments on commit 9297bc2

Please sign in to comment.