protected static PortfolioOverview mockPortfolioOverview(final int balance) { final PortfolioOverview po = mock(PortfolioOverview.class); when(po.getCzkAvailable()).thenReturn(BigDecimal.valueOf(balance)); when(po.getCzkInvested()).thenReturn(BigDecimal.ZERO); when(po.getCzkInvested(any())).thenReturn(BigDecimal.ZERO); when(po.getCzkAtRisk()).thenReturn(BigDecimal.ZERO); when(po.getCzkAtRisk(any())).thenReturn(BigDecimal.ZERO); when(po.getShareAtRisk()).thenReturn(BigDecimal.ZERO); when(po.getShareOnInvestment(any())).thenReturn(BigDecimal.ZERO); when(po.getAtRiskShareOnInvestment(any())).thenReturn(BigDecimal.ZERO); when(po.getTimestamp()).thenReturn(ZonedDateTime.now()); return po; }
protected static PortfolioOverview mockPortfolioOverview(final int balance) { final PortfolioOverview po = mock(PortfolioOverview.class); when(po.getCzkAvailable()).thenReturn(BigDecimal.valueOf(balance)); when(po.getCzkInvested()).thenReturn(BigDecimal.ZERO); when(po.getCzkInvested(any())).thenReturn(BigDecimal.ZERO); when(po.getCzkAtRisk()).thenReturn(BigDecimal.ZERO); when(po.getCzkAtRisk(any())).thenReturn(BigDecimal.ZERO); when(po.getShareAtRisk()).thenReturn(BigDecimal.ZERO); when(po.getShareOnInvestment(any())).thenReturn(BigDecimal.ZERO); when(po.getAtRiskShareOnInvestment(any())).thenReturn(BigDecimal.ZERO); when(po.getTimestamp()).thenReturn(ZonedDateTime.now()); return po; }
public static Map<String, Object> summarizePortfolioStructure(final PortfolioOverview portfolioOverview) { return Maps.ofEntries( entry("absoluteShare", perRating(portfolioOverview::getCzkInvested)), entry("relativeShare", perRating(portfolioOverview::getShareOnInvestment)), entry("absoluteRisk", perRating(portfolioOverview::getCzkAtRisk)), entry("relativeRisk", perRating(portfolioOverview::getAtRiskShareOnInvestment)), entry("total", portfolioOverview.getCzkInvested()), entry("totalRisk", portfolioOverview.getCzkAtRisk()), entry("totalShare", portfolioOverview.getShareAtRisk()), entry("balance", portfolioOverview.getCzkAvailable()), entry("timestamp", toDate(portfolioOverview.getTimestamp())) ); }
public static Map<String, Object> summarizePortfolioStructure(final PortfolioOverview portfolioOverview) { return Maps.ofEntries( entry("absoluteShare", perRating(portfolioOverview::getCzkInvested)), entry("relativeShare", perRating(portfolioOverview::getShareOnInvestment)), entry("absoluteRisk", perRating(portfolioOverview::getCzkAtRisk)), entry("relativeRisk", perRating(portfolioOverview::getAtRiskShareOnInvestment)), entry("total", portfolioOverview.getCzkInvested()), entry("totalRisk", portfolioOverview.getCzkAtRisk()), entry("totalShare", portfolioOverview.getShareAtRisk()), entry("balance", portfolioOverview.getCzkAvailable()), entry("timestamp", toDate(portfolioOverview.getTimestamp())) ); }
@Test void emptyPortfolioWithAdjustmentsAndRisks() { final BigDecimal adj = BigDecimal.TEN; final Map<Rating, BigDecimal> in = Collections.singletonMap(Rating.D, adj); final PortfolioOverview po = new PortfolioOverviewImpl(BigDecimal.ZERO, in, in); SoftAssertions.assertSoftly(softly -> { softly.assertThat(po.getCzkAvailable()).isEqualTo(BigDecimal.ZERO); softly.assertThat(po.getCzkInvested()).isEqualTo(adj); softly.assertThat(po.getCzkAtRisk()).isEqualTo(adj); final BigDecimal share = divide(po.getCzkAtRisk(), po.getCzkInvested()); softly.assertThat(po.getShareAtRisk()).isEqualTo(share); for (final Rating r : Rating.values()) { final BigDecimal expectedAbsolute = r == Rating.D ? adj : BigDecimal.ZERO; final BigDecimal expectedRelative = r == Rating.D ? BigDecimal.ONE : BigDecimal.ZERO; softly.assertThat(po.getCzkInvested(r)).as(r + " invested").isEqualTo(expectedAbsolute); softly.assertThat(po.getCzkAtRisk(r)).as(r + " at risk").isEqualTo(expectedAbsolute); softly.assertThat(po.getShareOnInvestment(r)) .as(r + " as a share") .isEqualTo(expectedRelative); softly.assertThat(po.getAtRiskShareOnInvestment(r)) .as(r + " at risk as a share") .isEqualTo(expectedRelative); } }); } }
@Test void emptyPortfolio() { final BigDecimal balance = BigDecimal.TEN; final PortfolioOverview po = new PortfolioOverviewImpl(balance, Collections.emptyMap(), Collections.emptyMap()); SoftAssertions.assertSoftly(softly -> { softly.assertThat(po.getCzkAvailable()).isEqualTo(balance); softly.assertThat(po.getCzkInvested()).isEqualTo(BigDecimal.ZERO); softly.assertThat(po.getCzkAtRisk()).isEqualTo(BigDecimal.ZERO); softly.assertThat(po.getShareAtRisk()).isEqualTo(BigDecimal.ZERO); for (final Rating r : Rating.values()) { softly.assertThat(po.getCzkInvested(r)).as(r + " invested").isEqualTo(BigDecimal.ZERO); softly.assertThat(po.getCzkAtRisk(r)).as(r + " at risk").isEqualTo(BigDecimal.ZERO); softly.assertThat(po.getShareOnInvestment(r)) .as(r + " as a share") .isEqualTo(BigDecimal.ZERO); softly.assertThat(po.getAtRiskShareOnInvestment(r)) .as(r + " at risk as a share") .isEqualTo(BigDecimal.ZERO); } }); }