Example #1
0
        public void DisposeDisposesAllEngines()
        {
            var engines = new[]
            {
                new Mock<IJsEngine>(),
                new Mock<IJsEngine>(),
                new Mock<IJsEngine>(),
                new Mock<IJsEngine>(),
            };
            var factory = new Mock<IEngineFactoryForMock>();
            factory.SetupSequence(x => x.EngineFactory())
                .Returns(engines[0].Object)
                .Returns(engines[1].Object)
                .Returns(engines[2].Object)
                .Returns(engines[3].Object);
            var config = new JsPoolConfig
            {
                StartEngines = 3,
                EngineFactory = factory.Object.EngineFactory
            };

            var pool = new JsPool(config);
            pool.Dispose();

            foreach (var engine in engines)
            {
                engine.Verify(x => x.Dispose());
            }
        }
Example #2
0
        public void GetEngineReturnsAllAvailableEngines()
        {
            var engines = new[]
            {
                new Mock<IJsEngine>().Object,
                new Mock<IJsEngine>().Object,
                new Mock<IJsEngine>().Object,
            };
            var factory = new Mock<IEngineFactoryForMock>();
            factory.SetupSequence(x => x.EngineFactory())
                // Initial call to factory is to determine engine type, we don't care
                // about that here.
                .Returns(new Mock<IJsEngine>().Object)
                .Returns(engines[0])
                .Returns(engines[1])
                .Returns(engines[2]);
            var config = new JsPoolConfig
            {
                StartEngines = 3,
                EngineFactory = factory.Object.EngineFactory
            };

            var pool = new JsPool(config);
            var resultEngines = new[]
            {
                pool.GetEngine(),
                pool.GetEngine(),
                pool.GetEngine(),
            };

            CollectionAssert.AreEquivalent(engines, resultEngines);
        }