What is mocking? - Biztalkusergroup.se

advertisement
• 18:00 - ”BizTalk Tips och Trix”
Mikael Sand
• 19:00 - Paus, mingel, diskussioner
• 19:30 - ”Kanoniska datamodeller”
Johan Tuvstedt
• 20:00 – ”Lösningar för att mocka en port”
Johan Hedberg
3:e oktober
“Effektiv systemdokumentation i ett integrationsprojekt”
Richard Hallgren
“BizTalk IaaS, PaaS – Hybridbaserade Integrationslösningar med BizTalk lokalt
och/eller i molnet”
Michael Olsson
Johan Hedberg, Enfo Zystems
http://blogical.se/blogs/johan
johan@jeh.se / johan.hedberg@enfo.se
@JoHed






Raise awareness of options
Present different solutions to mock a send port
Consider how they differentiate
Discuss Pros and Cons
Talk about how they accomplish the work
Look at (some) code and implementation logic
Photo by moyogo @flickr

Introduction
 What is mocking?
 Why Mock a Send Port?

Solutions
Photo by Dan Holtmeyer @flickr

In this context...

”Mocking is the simulation of an system or service that mimics
the behavior of the target system or service”





PoC
Test
Isolation
Parallell development
Cost savings



Treating mock as the real thing
Plan for the development and maintenance
Don’t overdo it, KISS






Core adapters
Null adapter
Orchestration
Web Page/Service
Custom Adapters and Bindings
Frameworks and Tools

Replacing the ports adapter with the FILE/MSMQ/MQ/etc.
adapter

Pros:
 Easy
 Close copy to actual port configuration
 Allows access to output

Cons:
 One-Way
 Limited flexibility
 WCF Behaviors etc

Replacing the ports adapter with the NULL adapter

Pros:
 Easy-ish
 Close copy to actual port configuration

Cons:





One-Way
No access to output
Limited flexibility
WCF Behaviors etc
Requires adapter development/install

Replacing the ports pipeline with a consuming pipeline

Pros:
 Easy-ish

Cons:






One-Way
Greater config differences
No access to output
Limited flexibility
WCF Behaviors etc
Requires pipeline and pipeline component development/install

Creating one orchestration per send port oprtation to simulate response

Pros:






Easy
Flexible
One-Way and Solicit-Response
Context properties
No port/adapter latency
Cons:




Requires developer resources
One orchestration per send port could result in many additional orchestrations
Limited to MsgBox measurements
Far away from the actual configuration

Creating a generic orchestration that can handle all send ports
 Based on a convoy pattern and configuration (?)

Pros:





Flexible
One-Way and Solicit-Response
Context properties
No port/adapter latency
Cons:





Requires custom development
Limited to MsgBox measurements
Configuration/rule heavy
Needs to be built to your (pre-determined and generic) subscription filters
Far away from the actual configuration

Creating a HTTP page hosted in IIS called by a HTTP send port

Pros:
 Easy
 One-Way and Solicit-Response
 Possible access to output if coded

Cons:
 Limited flexibility
 IIS Install/Deployment
 WCF Behaviors etc

Creating a WCF Service called by a WCF send port

Pros:






Flexible
One-Way and Solicit-Response
WCF Behaviors
One port independent of no of operations
As close to actual configuration (of a webservice) as you can get
Cons:
 Install/Deploy
 Context properties

Creating an adapter using the Adapter Framework to
act as the mock message factory

Pros:





Flexible
Can control context properties
No latency to service calls
No additional components outside BizTalk
Cons:
 Big difference from WCF configuration
 Custom Adapter development

Adding a custom channel to the channelstack to
act as the mock message factory
 Paolo Salvatori has a sample of this technique at
http://blogs.msdn.com/b/paolos/archive/2011/04/05/how-to-use-a-wcfcustom-channel-to-implement-client-side-caching.aspx

Pros:
 Close to actual configuration
 No latency to service calls
 No additional deployment outside BizTalk

Cons:
 Non-trivial development of channel and behavior

Creating a custom LOB Adapter SDK Adapter to
act as the mock message factory
 There is a tutorial showing how to develop an LOB EchoAdapter that
takes you step by step through this technique at
http://msdn.microsoft.com/en-us/library/bb798134(v=bts.10)

Pros:
 Close to actual configuration
 No latency to service calls
 No additional deployment outside BizTalk

Cons:
 Custom Adapter/Binding Development

SoapUI is a popular tool to test webservices that
can also create mock services

Pros:
 If you are confomfortable using SoapUI
 A commercial tool – support
 Promotes a contract first approach

Cons:
 If you are not comfortable using SoapUI
 A commercial tool – cost
 Need to re-generate service on contract changes

BizMock is a framework for testing Orchestrations, Schemas,
Maps and Pipelines by writing Visual Studio c# unit tests
 Available at http://bizmock.codeplex.com/

Pros:
 Allows unit tests of orchestrations

Not really in focus for this discussion

Is a collection of pipeline components that trigger boo scripts
that can perform work like promoting context properties.

Pros:
 Cool sample of very Dynamic pipeline components
 Allows context property promotion

Cons:
 Not really mocking in itself
 boo language

Uses a service simulator (HTTP Handler or WCF interceptor) to return a
response
 Available at http://mockingbird.codeplex.com/

Pros:






Easy enough
No development effort
No cost of purchase
WSDL based Mock service simulator config generation
WSDL based Mock request and responses generation
Cons:
 Easy enough?
 Support?
Download