public void CreateHandler_WhenContractTypeNotSatisfiedByObjectType_Throws() { var factory = new SingletonHandlerFactory(); var dependencyResolver = MockRepository.GenerateStub<IObjectDependencyResolver>(); var ex = Assert.Throws<RuntimeException>(() => factory.CreateHandler(dependencyResolver, typeof(IService), typeof(ComponentThatDoesNotImplementIService), new PropertySet())); Assert.AreEqual(string.Format("Could not satisfy contract of type '{0}' by creating an instance of type '{1}'.", typeof(IService), typeof(ComponentThatDoesNotImplementIService)), ex.Message); }
public void CreateHandler_WhenArgumentsValid_ReturnsAHandlerThatGeneratesTheSameComponentInstanceEachTime() { var factory = new SingletonHandlerFactory(); var dependencyResolver = MockRepository.GenerateStub<IObjectDependencyResolver>(); var handler = factory.CreateHandler(dependencyResolver, typeof(IService), typeof(Component), new PropertySet()); var instance1 = handler.Activate(); Assert.IsInstanceOfType<Component>(instance1); var instance2 = handler.Activate(); Assert.AreSame(instance1, instance2, "Should return same instance each time because the component is considered a singleton."); }