|
5 | 5 |
|
6 | 6 | import java.math.BigDecimal; |
7 | 7 | import java.text.MessageFormat; |
| 8 | +import java.time.LocalDate; |
8 | 9 |
|
9 | 10 | import org.eclipse.core.databinding.validation.ValidationStatus; |
10 | 11 | import org.junit.Test; |
11 | 12 |
|
12 | 13 | import name.abuchen.portfolio.model.Client; |
13 | 14 | import name.abuchen.portfolio.model.PortfolioTransaction; |
| 15 | +import name.abuchen.portfolio.model.Security; |
| 16 | +import name.abuchen.portfolio.model.SecurityPrice; |
14 | 17 | import name.abuchen.portfolio.money.Values; |
15 | 18 | import name.abuchen.portfolio.ui.Messages; |
16 | 19 |
|
@@ -119,4 +122,20 @@ public void testStatusErrors() |
119 | 122 | assertThat(model.getCalculationStatus(), is(ValidationStatus |
120 | 123 | .error(MessageFormat.format(Messages.MsgDialogInputRequired, Messages.ColumnSubTotal)))); |
121 | 124 | } |
| 125 | + |
| 126 | + @Test |
| 127 | + public void testWithSecurity() |
| 128 | + { |
| 129 | + // some properties can be fetched from a Security object |
| 130 | + var model = new BuySellModel(new Client(), PortfolioTransaction.Type.BUY); |
| 131 | + var security = new Security("Acme Corporation", "USD"); |
| 132 | + var date = LocalDate.now(); |
| 133 | + security.addPrice(new SecurityPrice(date, 5L * Values.Quote.factor())); |
| 134 | + model.setSecurity(security); |
| 135 | + model.setShares(100L * Values.Share.factor()); |
| 136 | + model.setDate(date); |
| 137 | + assertThat(model.getQuote(), is(BigDecimal.valueOf(5.0))); |
| 138 | + assertThat(model.getSecurityCurrencyCode(), is("USD")); |
| 139 | + assertThat(model.getExchangeRate(), is(BigDecimal.ONE)); |
| 140 | + } |
122 | 141 | } |
0 commit comments