|
31 | 31 | import java.util.Iterator; |
32 | 32 | import java.util.Properties; |
33 | 33 | import java.util.Set; |
| 34 | +import java.util.HashSet; |
34 | 35 | import java.util.List; |
35 | 36 | import java.util.Map; |
36 | 37 | import java.util.HashMap; |
@@ -610,6 +611,51 @@ public void testConcurrentAccess() throws ConfigError, InterruptedException { |
610 | 611 | assertTrue(testHasPassed.get()); |
611 | 612 | } |
612 | 613 |
|
| 614 | + @Test |
| 615 | + public void testRemoveSectionBySessionID() throws ConfigError { |
| 616 | + final Map<Object, Object> defaultSettings = createDefaultSettings(); |
| 617 | + |
| 618 | + final Map<Object, Object> pricingSection = createPricingSection(); |
| 619 | + final SessionID pricingSessionID = new SessionID("FIX.4.2:FOOBAR_PRICING->*"); |
| 620 | + |
| 621 | + final Map<Object, Object> tradingSection = createTradingSection(); |
| 622 | + final SessionID tradingSessionID = new SessionID("FIX.4.2:FOOBAR_TRADING->*"); |
| 623 | + |
| 624 | + final SessionSettings sessionSettings = new SessionSettings(); |
| 625 | + sessionSettings.set(new Dictionary(null, defaultSettings)); |
| 626 | + sessionSettings.set(pricingSessionID, new Dictionary("sessions", pricingSection)); |
| 627 | + sessionSettings.set(tradingSessionID, new Dictionary("sessions", tradingSection)); |
| 628 | + |
| 629 | + while (sessionSettings.sectionIterator().hasNext()) { |
| 630 | + SessionID sessionID = sessionSettings.sectionIterator().next(); |
| 631 | + sessionSettings.removeSection(sessionID); |
| 632 | + } |
| 633 | + |
| 634 | + assertFalse(sessionSettings.sectionIterator().hasNext()); |
| 635 | + } |
| 636 | + |
| 637 | + @Test |
| 638 | + public void testRemoveSectionByPropertyKey() throws ConfigError { |
| 639 | + final Map<Object, Object> defaultSettings = createDefaultSettings(); |
| 640 | + |
| 641 | + final Map<Object, Object> tradingSection = createTradingSection(); |
| 642 | + final SessionID tradingSessionID = new SessionID("FIX.4.2:FOOBAR_TRADING->*"); |
| 643 | + |
| 644 | + final SessionSettings sessionSettings = new SessionSettings(); |
| 645 | + sessionSettings.set(new Dictionary(null, defaultSettings)); |
| 646 | + sessionSettings.set(tradingSessionID, new Dictionary("sessions", tradingSection)); |
| 647 | + |
| 648 | + sessionSettings.removeSection("SocketAcceptPort", "7566"); |
| 649 | + |
| 650 | + Set<SessionID> expectedSessionIdSet = new HashSet<>(); |
| 651 | + while (sessionSettings.sectionIterator().hasNext()) { |
| 652 | + SessionID sessionID = sessionSettings.sectionIterator().next(); |
| 653 | + expectedSessionIdSet.add(sessionID); |
| 654 | + } |
| 655 | + |
| 656 | + assertFalse(expectedSessionIdSet.contains(tradingSessionID)); |
| 657 | + } |
| 658 | + |
613 | 659 | private Map<Object, Object> createTradingSection() { |
614 | 660 | final Map<Object, Object> tradingSection = new HashMap<>(); |
615 | 661 | tradingSection.put("PersistMessages","Y"); |
|
0 commit comments