public void Open_TwoResolvers_ReturnsFirstResolverStream()
        {
            // Arrange
            using (new ObjectFactoryContainerRegion())
            {
                using (var ms1 = new MemoryStream())
                {
                    using (var ms2 = new MemoryStream())
                    {
                        ObjectFactory.Container.RegisterType <IResourceResolverStrategy, ResourceResolverStrategy>(new ContainerControlledLifetimeManager());

                        var firstNode = new DummyResourceResolverNode();
                        firstNode.CurrentExistsMock = (pathDefinition, virtualPath) => true;
                        firstNode.CurrentOpenMock   = (pathDefinition, virtualPath) => ms1;

                        var secondNode = new DummyResourceResolverNode();
                        secondNode.CurrentExistsMock = (pathDefinition, virtualPath) => true;
                        secondNode.CurrentOpenMock   = (pathDefinition, virtualPath) => ms2;

                        ObjectFactory.Resolve <IResourceResolverStrategy>().SetFirst(firstNode).SetNext(secondNode);

                        // Act
                        var resolver = new ResourceResolver();
                        var result   = resolver.Open(new PathDefinition(), "~/Test");

                        // Assert
                        Assert.AreNotSame(ms2, result, "The stream for the second node was returned while the first one was expected.");
                        Assert.AreSame(ms1, result, "The stream for the first node was not returned.");
                    }
                }
            }
        }