StructureMap: How can i unit test the registry class?

Posted by Marius on Stack Overflow See other posts from Stack Overflow or by Marius
Published on 2010-03-18T11:24:20Z Indexed on 2010/03/21 20:21 UTC
Read the original article Hit count: 150

Filed under:

I have a registry class like this:

public class StructureMapRegistry : Registry
{
    public StructureMapRegistry()
    {
        For<IDateTimeProvider>().Singleton().Use<DateTimeProviderReturningDateTimeNow>();
    }

I want to test that the configuration is according to my intent, so i start writing a test:

public class WhenConfiguringIOCContainer : Scenario
{
    private TfsTimeMachine.Domain.StructureMapRegistry registry;
    private Container container;

    protected override void Given()
    {
        registry = new TfsTimeMachine.Domain.StructureMapRegistry();
        container = new Container();
    }

    protected override void When()
    {
        container.Configure(i => i.AddRegistry(registry));
    }

    [Then]
    public void DateTimeProviderIsRegisteredAsSingleton()
    {
        // I want to say "verify that the container contains the expected type and that the expected type
        // is registered as a singleton
    }
}

How can verify that the registry is accoring to my expectations? Note: I introduced the container because I didn't see any sort of verification methods available on the Registry class. Idealy, I want to test on the registry class directly.

© Stack Overflow or respective owner

Related posts about structuremap