public void CreateWithLazyLocking() { var result = DataStoreFactory.CreateWithLazyLocking <string, object>(); Assert.That(result, Is.TypeOf(typeof(LazyLockingDataStoreAdapter <string, object>))); var innerStore = PrivateInvoke.GetNonPublicField(result, "_innerDataStore"); Assert.That(innerStore, Is.TypeOf(typeof(LockingDataStoreDecorator <string, DoubleCheckedLockingContainer <LazyLockingDataStoreAdapter <string, object> .Wrapper> >))); var innerDecoratorStore = PrivateInvoke.GetNonPublicField(innerStore, "_innerStore"); Assert.That(innerDecoratorStore, Is.TypeOf(typeof(SimpleDataStore <string, DoubleCheckedLockingContainer <LazyLockingDataStoreAdapter <string, object> .Wrapper> >))); }