Testing DSL Syntax with Interaction Based Testing
How do I test the syntax in this DSL? HandleWith should translate to a method call with typeof(RoutingTestHandler) and a delegate.
import BDSLiB.Tests HandleWith RoutingTestHandler: lines = [] return NewOrderMessage( 15, "NewOrder", lines.ToArray(OrderLine) )
Well, I use interaction based testing, obviously. I find this test utterly fascinating, because it is fairly advance, in a roundabout sort of way, and yet it is so simple.
[Test] public void WillCallHandlesWithWithRouteTestHanlderWhenRouteCalled() { const IQuackFu msg = null; var mocks = new MockRepository(); var routing = dslFactory.Create<RoutingBase>(@"Routing\simple.boo"); var mockedRouting = (RoutingBase)mocks.PartialMock(routing.GetType()); Expect.Call(() => mockedRouting.HandleWith(null, null)) .Constraints(Is.Equal(typeof(RoutingTestHandler)), Is.Anything()); mocks.ReplayAll(); mockedRouting.Initialize(msg); mockedRouting.Route(); mocks.VerifyAll(); }
Comments
Comment preview