diff options
Diffstat (limited to 'src/DotNetOpenAuth.Test/Mocks/MockTransformationBindingElement.cs')
-rw-r--r-- | src/DotNetOpenAuth.Test/Mocks/MockTransformationBindingElement.cs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.Test/Mocks/MockTransformationBindingElement.cs b/src/DotNetOpenAuth.Test/Mocks/MockTransformationBindingElement.cs new file mode 100644 index 0000000..7c5a240 --- /dev/null +++ b/src/DotNetOpenAuth.Test/Mocks/MockTransformationBindingElement.cs @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------- +// <copyright file="MockTransformationBindingElement.cs" company="Andrew Arnott"> +// Copyright (c) Andrew Arnott. All rights reserved. +// </copyright> +//----------------------------------------------------------------------- + +namespace DotNetOpenAuth.Test.Mocks { + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using DotNetOpenAuth.Messaging; + using Microsoft.VisualStudio.TestTools.UnitTesting; + + internal class MockTransformationBindingElement : IChannelBindingElement { + private string transform; + + internal MockTransformationBindingElement(string transform) { + if (transform == null) { + throw new ArgumentNullException("transform"); + } + + this.transform = transform; + } + + #region IChannelBindingElement Members + + MessageProtections IChannelBindingElement.Protection { + get { return MessageProtections.None; } + } + + bool IChannelBindingElement.PrepareMessageForSending(IProtocolMessage message) { + var testMessage = message as TestMessage; + if (testMessage != null) { + testMessage.Name = this.transform + testMessage.Name; + return true; + } + + return false; + } + + bool IChannelBindingElement.PrepareMessageForReceiving(IProtocolMessage message) { + var testMessage = message as TestMessage; + if (testMessage != null) { + StringAssert.StartsWith(testMessage.Name, this.transform); + testMessage.Name = testMessage.Name.Substring(this.transform.Length); + return true; + } + + return false; + } + + #endregion + } +} |