/* * Copyright (C) 2016 - present by Yann Le Tallec. * Please see distribution for license. */ package com.assylias.jbloomberg; import java.util.concurrent.CountDownLatch; import static java.util.concurrent.TimeUnit.SECONDS; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class Issue17 { DefaultBloombergSession session = new DefaultBloombergSession(); @BeforeMethod(groups = "requires-bloomberg") public void start() throws BloombergException { session.start(); } @AfterMethod(groups = "requires-bloomberg") public void stop() { session.stop(); } /** * When subscribing to an expired ticker twice, the second subscription sends an exception */ @Test(groups = "requires-bloomberg") public void test() throws Exception { CountDownLatch errorLatch = new CountDownLatch(1); CountDownLatch dataLatch = new CountDownLatch(1); SubscriptionBuilder b = new SubscriptionBuilder() .addSecurity("VGZ14 Index") .addField(RealtimeField.LAST_PRICE) .onError(e -> errorLatch.countDown()) .addListener(e -> dataLatch.countDown()); session.subscribe(b); assertTrue(errorLatch.await(50, SECONDS)); assertEquals(dataLatch.getCount(), 1L); session.subscribe(new SubscriptionBuilder().addSecurity("VGZ14 Index").addField(RealtimeField.LAST_PRICE)); } }