Unit tests using SSL COM .Net Wrappers don't trigger callback functions

We are using legacy SSL COM .NET wrapper classes in our apps and I'm trying to unit test some new functionality. I can test my functionality if I create a new Windows App, set the appropriate callback functions, and call the "start" method on the ssl record. However, if I do the same thing in either a console app or in a Unit test running under Visual Studio Testing framework, I can't get the the ssl libraries to call my callback functions. I believe it has something to do with the Windows message pump and how it executes (or doesn't) in a Console App and in a Visual Studio testing app. Can you point me to some information on how the threading model or the record update model works with the message pump so I can implement my tests correctly? if you have examples of unit tests, better yet.
Thanks,
Vicente.
Best Answer
-
The info of SSL COM thread model is in Chapter 2.5 of developer guide.
Basically, SSL COM uses the Single Threaded Apartment(STA) model of COM.
I am not familiar with Visual Studio Testing Framework, but if you use NUnit you may have to use RequiresSTA attribute.
The SSL COM package also has console app example under "\SSL Developers Kit - COM Edition 1.2\examples\C#\ssltickr"
0
Answers
-
Thanks for your answer. I did find the info you suggested in the developer guide. I've been able to create a test program using a console app, and I'm also able to work with the api's in a windows application. Unfortunately, I cannot get the api to work in a testing framework like Visual Studio Testing Framework or NUnit, regardless of whether I use STA or MTA apartments.
0 -
If you wish to test the API callback. I would suggest that you should do system test instead.
UnitTest is for testing single method, Having API call the callback function in UnitTest is not a feasible task.
Instead you could just have mock the real feed with a provider app made with API and then connect to that provider in system test.
0 -
Agree with you. That's what I've done using a mock Windows app. Thanks.
0 -
Agree with you. That's what I've done using a mock Windows app. Thanks
BTW, this should be marked as the correct answer to the original question. Thxs.
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 684 Datastream
- 1.4K DSS
- 615 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 249 ETA
- 554 WebSocket API
- 37 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 643 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 26 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 192 TREP Infrastructure
- 228 TRKD
- 915 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛