Esempio n. 1
0
        public async Task CanGetConstraints_DoesNotWaitForNotNeededConstraints()
        {
            var engineEnvironmentSettings = _environmentSettingsHelper.CreateEnvironment(virtualize: true);

            engineEnvironmentSettings.Components.AddComponent(typeof(ITemplateConstraintFactory), new LongRunningTestConstraintFactory("test-1"));
            engineEnvironmentSettings.Components.AddComponent(typeof(ITemplateConstraintFactory), new TestConstraintFactory("test-2"));

            var templateInfo = A.Fake <ITemplateInfo>();

            A.CallTo(() => templateInfo.Constraints).Returns(new[]
            {
                new TemplateConstraintInfo("test-2", "yes")
            });

            IReadOnlyList <ITemplateConstraint>?constraints = null;
            var constraintsTask = Task.Run(async() =>
            {
                var constraintManager = new TemplateConstraintManager(engineEnvironmentSettings);
                constraints           = await constraintManager.GetConstraintsAsync(new[] { templateInfo }, default).ConfigureAwait(false);
            }
                                           );
            var completedTask = await Task.WhenAny(constraintsTask, Task.Delay(10000)).ConfigureAwait(false);

            Assert.Equal(completedTask, constraintsTask);
            Assert.Equal(1, constraints?.Count);
            Assert.Equal("test-2", constraints?.Single().Type);
        }
Esempio n. 2
0
        public async Task CanGetConstraints_WhenCreationFailed()
        {
            var engineEnvironmentSettings = _environmentSettingsHelper.CreateEnvironment(virtualize: true);

            engineEnvironmentSettings.Components.AddComponent(typeof(ITemplateConstraintFactory), new FailingTestConstraintFactory("test-1"));
            engineEnvironmentSettings.Components.AddComponent(typeof(ITemplateConstraintFactory), new TestConstraintFactory("test-2"));

            var constraintManager = new TemplateConstraintManager(engineEnvironmentSettings);
            var constraints       = await constraintManager.GetConstraintsAsync().ConfigureAwait(false);

            Assert.Equal(3, constraints.Count);
            Assert.Equal(new[] { "host", "os", "test-2" }, constraints.Select(c => c.Type).OrderBy(t => t));
        }
Esempio n. 3
0
        public async Task CanGetConstraints_Filter()
        {
            var engineEnvironmentSettings = _environmentSettingsHelper.CreateEnvironment(virtualize: true);

            engineEnvironmentSettings.Components.AddComponent(typeof(ITemplateConstraintFactory), new TestConstraintFactory("test-1"));
            engineEnvironmentSettings.Components.AddComponent(typeof(ITemplateConstraintFactory), new TestConstraintFactory("test-2"));

            var constraintManager = new TemplateConstraintManager(engineEnvironmentSettings);

            var templateInfo = A.Fake <ITemplateInfo>();

            A.CallTo(() => templateInfo.Constraints).Returns(new[]
            {
                new TemplateConstraintInfo("test-1", "yes")
            });

            var constraints = await constraintManager.GetConstraintsAsync(new[] { templateInfo }, default).ConfigureAwait(false);

            Assert.Equal(1, constraints.Count);
            Assert.Equal("test-1", constraints.Single().Type);
        }