private Map<String, String> getBondFutureBasket(ManageableSecurity security) { Map<String, String> result = new TreeMap<String, String>(); if (security instanceof BondFutureSecurity) { BondFutureSecurity bondFutureSecurity = (BondFutureSecurity) security; List<BondFutureDeliverable> basket = bondFutureSecurity.getBasket(); for (BondFutureDeliverable bondFutureDeliverable : basket) { String identifierValue = bondFutureDeliverable.getIdentifiers().getValue(ExternalSchemes.BLOOMBERG_BUID); result.put( ExternalSchemes.BLOOMBERG_BUID.getName() + "-" + identifierValue, String.valueOf(bondFutureDeliverable.getConversionFactor())); } } return result; }
@Test(groups = {"bbgSecurityFutureTests"}) public void euroBondFuture() throws Exception { ExternalIdBundle euroBund = ExternalIdBundle.of(ExternalSchemes.bloombergTickerSecurityId("RXA Comdty")); Security bond = _securityProvider.getSecurity(euroBund); assertNotNull(bond); assertTrue(bond instanceof BondFutureSecurity); BondFutureSecurity euroBondFuture = (BondFutureSecurity) bond; assertEquals("FUTURE", euroBondFuture.getSecurityType()); assertEquals("Bond", euroBondFuture.getContractCategory()); assertEquals(EUR, euroBondFuture.getCurrency()); String displayName = euroBondFuture.getName(); assertNotNull(displayName); assertTrue(displayName.contains("EURO-BUND FUTURE")); Expiry expiry = euroBondFuture.getExpiry(); assertNotNull(expiry); assertTrue(expiry.toInstant().isAfter(getTodayInstant())); assertEquals("XEUR", euroBondFuture.getTradingExchange()); assertEquals("XEUR", euroBondFuture.getSettlementExchange()); // assert identifiers are set Collection<ExternalId> identifiers = euroBondFuture.getExternalIdBundle().getExternalIds(); assertNotNull(identifiers); assertTrue(identifiers.size() >= EXPECTED_IDENTIFICATION_SCHEME.length); ExternalIdBundle identifierBundle = ExternalIdBundle.of(identifiers); for (ExternalScheme expectedIDScheme : EXPECTED_IDENTIFICATION_SCHEME) { assertNotNull(identifierBundle.getExternalId(expectedIDScheme)); } // assert deliverables are not empty Collection<BondFutureDeliverable> basket = euroBondFuture.getBasket(); assertNotNull(basket); for (BondFutureDeliverable bondFutureDeliverable : basket) { ExternalIdBundle bundle = bondFutureDeliverable.getIdentifiers(); assertNotNull(bundle); assertNotNull(bundle.getExternalId(ExternalSchemes.BLOOMBERG_BUID)); assertTrue(bondFutureDeliverable.getConversionFactor() > 0); } }