Ejemplo n.º 1
0
        public void Constructor_does_not_throw_when_logger_is_null()
        {
            var evaluator = Substitute.For <IFeatureEvaluator>();
            var feature   = new SimpleTestFeature(evaluator);
            Func <FeatureSelector <SimpleTestFeature, NewGetSomething, OldGetSomething, IGetSomething> > act =
                () => new FeatureSelector <SimpleTestFeature, NewGetSomething, OldGetSomething, IGetSomething>(
                    feature,
                    () => new NewGetSomething(),
                    () => new OldGetSomething(),
                    null);

            act.Should().NotThrow();
        }
Ejemplo n.º 2
0
        public void Constructor_throws_when_off_is_null()
        {
            var evaluator = Substitute.For <IFeatureEvaluator>();
            var feature   = new SimpleTestFeature(evaluator);
            var logger    = Substitute.For <ILogger <FeatureSelector <SimpleTestFeature, NewGetSomething, OldGetSomething, IGetSomething> > >();
            Func <FeatureSelector <SimpleTestFeature, NewGetSomething, OldGetSomething, IGetSomething> > act =
                () => new FeatureSelector <SimpleTestFeature, NewGetSomething, OldGetSomething, IGetSomething>(
                    feature,
                    () => new NewGetSomething(),
                    null,
                    logger);

            act.Should().Throw <ArgumentNullException>().WithMessage("*off*");
        }
Ejemplo n.º 3
0
        public async Task CreateAsync_logs_off_with_the_correct_type_when_feature_is_off()
        {
            var evaluator = Substitute.For <IFeatureEvaluator>();
            var feature   = new SimpleTestFeature(evaluator);
            var logger    = Logger.For <FeatureSelector <SimpleTestFeature, NewGetSomething, OldGetSomething, IGetSomething> >();
            var selector  = new FeatureSelector <SimpleTestFeature, NewGetSomething, OldGetSomething, IGetSomething>(
                feature,
                () => new NewGetSomething(),
                () => new OldGetSomething(),
                logger);

            evaluator.IsOnAsync(Arg.Any <string>()).Returns(false);

            var getter = await selector.CreateAsync();

            logger.Received().LogInformation(s => s.Contains("OldGetSomething") && s.Contains("Test Feature") && s.Contains("off"));
        }
Ejemplo n.º 4
0
        public async Task CreateAsync_creates_the_correct_type_when_feature_is_off()
        {
            var evaluator = Substitute.For <IFeatureEvaluator>();
            var feature   = new SimpleTestFeature(evaluator);
            var selector  = new FeatureSelector <SimpleTestFeature, NewGetSomething, OldGetSomething, IGetSomething>(
                feature,
                () => new NewGetSomething(),
                () => new OldGetSomething(),
                null);

            evaluator.IsOnAsync(Arg.Any <string>()).Returns(false);

            var getter = await selector.CreateAsync();

            var result = getter.GetSomething();

            getter.Should().BeOfType <OldGetSomething>();
            result.Should().Be("Old");
        }