/* * Copyright (C) 2012 - present by Yann Le Tallec. * Please see distribution for license. */ package com.assylias.jbloomberg; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static org.testng.Assert.*; import org.testng.annotations.Test; public class SubscriptionBuilderTest { @Test(groups = "unit", expectedExceptions = NullPointerException.class) public void testAddListener_Null() { new SubscriptionBuilder().addListener(null); } @Test(groups = "unit", expectedExceptions = NullPointerException.class) public void testAddSecurities_NullList() { new SubscriptionBuilder().addSecurities((List<String>) null); } @Test(groups = "unit", expectedExceptions = NullPointerException.class) public void testAddSecurities_ListContainsNull() { String s = null; new SubscriptionBuilder().addSecurities(Arrays.asList(s)); } @Test(groups = "unit", expectedExceptions = IllegalArgumentException.class) public void testAddSecurities_ListContainsEmpty() { new SubscriptionBuilder().addSecurities(Arrays.asList("")); } @Test(groups = "unit", expectedExceptions = NullPointerException.class) public void testAddSecurity_NullString() { new SubscriptionBuilder().addSecurity((String) null); } @Test(groups = "unit", expectedExceptions = IllegalArgumentException.class) public void testAddSecurity_EmptyString() { new SubscriptionBuilder().addSecurity(""); } @Test(groups = "unit", expectedExceptions = NullPointerException.class) public void testAddFields_NullList() { new SubscriptionBuilder().addFields((List<RealtimeField>) null); } @Test(groups = "unit", expectedExceptions = NullPointerException.class) public void testAddFields_ListContainsNull() { RealtimeField r = null; new SubscriptionBuilder().addFields(Arrays.asList(r)); } @Test(groups = "unit", expectedExceptions = NullPointerException.class) public void testAddField_Null() { new SubscriptionBuilder().addField((RealtimeField) null); } @Test(groups = "unit", expectedExceptions = IllegalArgumentException.class) public void testThrottle_Negative() { new SubscriptionBuilder().throttle(-1); } @Test(groups = "unit", expectedExceptions = IllegalArgumentException.class) public void testThrottle_TooSmall() { new SubscriptionBuilder().throttle(0.001); } @Test(groups = "unit", expectedExceptions = IllegalArgumentException.class) public void testThrottle_TooBig() { new SubscriptionBuilder().throttle(86401); } @Test(groups = "unit") public void testService() { assertEquals(new SubscriptionBuilder().getServiceType(), BloombergServiceType.MARKET_DATA); } @Test(groups = "unit") public void testAddSecurities_1() { List<String> list = new ArrayList<>(); list.add("abc"); list.add("def"); SubscriptionBuilder sb = new SubscriptionBuilder().addSecurity("abc").addSecurity("def"); assertEquals(sb.getSecurities(), list); } @Test(groups = "unit") public void testAddSecurities_2() { List<String> list = new ArrayList<>(); list.add("abc"); list.add("def"); SubscriptionBuilder sb = new SubscriptionBuilder().addSecurities(list); assertEquals(sb.getSecurities(), list); } @Test(groups = "unit") public void testAddSecurities_Duplicate() { List<String> list = new ArrayList<>(); list.add("abc"); list.add("def"); list.add("def"); SubscriptionBuilder sb = new SubscriptionBuilder().addSecurities(list); assertTrue(sb.getSecurities().containsAll(list)); assertEquals(sb.getSecurities().size(), 2); //duplicate removed } @Test(groups = "unit") public void testAddFields_1() { List<RealtimeField> list = new ArrayList<>(); list.add(RealtimeField.ASK); list.add(RealtimeField.BID); SubscriptionBuilder sb = new SubscriptionBuilder().addField(RealtimeField.ASK).addField(RealtimeField.BID); assertTrue(sb.getFieldsAsString().containsAll(Arrays.asList("ASK", "BID"))); assertEquals(sb.getFields().size(), 2); } @Test(groups = "unit") public void testAddFields_2() { List<RealtimeField> list = new ArrayList<>(); list.add(RealtimeField.ASK); list.add(RealtimeField.BID); SubscriptionBuilder sb = new SubscriptionBuilder().addFields(list); assertTrue(sb.getFieldsAsString().containsAll(Arrays.asList("ASK", "BID"))); assertEquals(sb.getFields().size(), 2); } @Test(groups = "unit") public void testAddFields_Duplicate() { List<RealtimeField> list = new ArrayList<>(); list.add(RealtimeField.ASK); list.add(RealtimeField.BID); list.add(RealtimeField.BID); SubscriptionBuilder sb = new SubscriptionBuilder().addFields(list); assertTrue(sb.getFieldsAsString().containsAll(Arrays.asList("ASK", "BID"))); assertEquals(sb.getFields().size(), 2); } @Test(groups = "unit") public void testThrottle_1() { SubscriptionBuilder sb = new SubscriptionBuilder().throttle(1); assertEquals(sb.getThrottle(), 1d); } @Test(groups = "unit") public void testThrottle_2() { SubscriptionBuilder sb = new SubscriptionBuilder(); assertEquals(sb.getThrottle(), 0d); } @Test(groups = "unit") public void testAddListener() { DataChangeListener lst1 = e -> {}; DataChangeListener lst2 = e -> {}; SubscriptionBuilder sb = new SubscriptionBuilder().addListener(lst1).addListener(lst1).addListener(lst2); assertEquals(sb.getListeners().size(), 2); } @Test(groups = "unit") public void testAddErrorListener() { SubscriptionErrorListener lst1 = e -> {}; SubscriptionErrorListener lst2 = e -> {}; DataChangeListener lst3 = e -> {}; SubscriptionBuilder sb = new SubscriptionBuilder().onError(lst1).onError(lst1).onError(lst2).addListener(lst3); assertEquals(sb.getListeners().size(), 1); assertSame(sb.getErrorListener(), lst2); } }