# HG changeset patch # User Steven Robbins # Date 1269889292 -3600 # Node ID 9a59c829118f5168ab602059655bf8d07c9692d1 # Parent b5bbba5660a2097f38e0e5e7a47401268d79440b Added additional test class diff -r b5bbba5660a2097f38e0e5e7a47401268d79440b -r 9a59c829118f5168ab602059655bf8d07c9692d1 TinyIoC.Tests/TinyMessageSubscriptionTokenTests.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TinyIoC.Tests/TinyMessageSubscriptionTokenTests.cs Mon Mar 29 20:01:32 2010 +0100 @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using TinyIoC.Tests.TestData; +using TinyMessenger; + +namespace TinyIoC.Tests +{ + [TestClass] + public class TinyMessageSubscriptionTokenTests + { + [TestMethod] + public void Dispose_WithValidHubReference_UnregistersWithHub() + { + var messengerMock = new Moq.Mock(); + messengerMock.Setup((messenger) => messenger.Unsubscribe(Moq.It.IsAny())).Verifiable(); + var token = new TinyMessageSubscriptionToken(messengerMock.Object, typeof(TestMessage)); + + token.Dispose(); + + messengerMock.VerifyAll(); + } + + [TestMethod] + public void Dispose_WithInvalidHubReference_DoesNotThrow() + { + var token = UtilityMethods.GetTokenWithOutOfScopeMessenger(); + GC.Collect(); + GC.WaitForFullGCComplete(2000); + + token.Dispose(); + } + + [TestMethod] + [ExpectedException(typeof(ArgumentNullException))] + public void Ctor_NullHub_ThrowsArgumentNullException() + { + var messenger = UtilityMethods.GetMessenger(); + + var token = new TinyMessageSubscriptionToken(null, typeof(ITinyMessage)); + } + + [TestMethod] + [ExpectedException(typeof(ArgumentOutOfRangeException))] + public void Ctor_InvalidMessageType_ThrowsArgumentOutOfRangeException() + { + var messenger = UtilityMethods.GetMessenger(); + + var token = new TinyMessageSubscriptionToken(messenger, typeof(object)); + } + + [TestMethod] + public void Ctor_ValidHubAndMessageType_DoesNotThrow() + { + var messenger = UtilityMethods.GetMessenger(); + + var token = new TinyMessageSubscriptionToken(messenger, typeof(TestMessage)); + } + } +}