Edit: Language/Platform is C# / .Net
I'm currently trying to fill a vast unit-test void in my current project, and being admittedly new to TDD, find myself quite stumped as to how to go about testing some of the more business-critical features.
I picked up Moq and had an easy enough time doing simple mocks, however at the core of my application lies a rather large, scary COM interop layer, which I'm having a difficult time conceptualizing how to Unit Test appropriately. The COM component is entirely 3rd party, and thus cannot be modified, and implements what amounts to a finite state machine for handling phone calls. The component notifies my application through a set of non-virtual events which I would like to test in certain orders to simulate state changes, however Moq does not offer a way to do this for anything but virtual events.
So my question to the more knowledgeable TDDers/Mockists is: How would you go about testing this sort of thing?
Apparently TypeMock supports this (in exchange for it's own shortcomings), but I'd rather not use it for a variety of reasons regarding type-safety and my general feeling that it's doing something devious behind my back.