Ejemplo n.º 1
0
        public void Get_ByTypeOnly_UsesTypeDeclaration()
        {
            var resolver = new StandardExodataResolver();

            resolver.Bind(ExodataDeclaration <int> .TypeDeclaration, 42);

            ExodataDeclaration.SetResolver(resolver);

            Assert.AreEqual(42, ExodataDeclaration.Get <int>());
        }
        public void Resolve_WithMultipleMembers_YieldsExodata()
        {
            var resolver = new StandardExodataResolver();

            resolver.Bind(IntegerExodata.MinValue)
            .For <DateTime>(x => x.Day, x => x.Month)
            .To(42);

            Assert.AreEqual(42, resolver.TryResolve(IntegerExodata.MinValue).For <DateTime>(x => x.Day));
            Assert.AreEqual(42, resolver.TryResolve(IntegerExodata.MinValue).For <DateTime>(x => x.Month));
        }
Ejemplo n.º 3
0
        public void Resolve_ThruImplicitCastOperator_ReturnsValue()
        {
            var resolver = new StandardExodataResolver();

            resolver.Bind(StringExodata.MaxLength, 42);

            ExodataDeclaration.SetResolver(resolver);

            int value = StringExodata.MaxLength;

            Assert.AreEqual(42, value);
        }
Ejemplo n.º 4
0
        public void ValidateValue_WithoutValidValue_ThrowsException()
        {
            var betweenOneAndTen = new ComparableExodataDeclaration <int>(1, 10, 5);

            var resolver = new StandardExodataResolver();

            resolver.Bind(betweenOneAndTen, 42);

            ExodataDeclaration.SetResolver(resolver);

            Assert.Throws <ExodataValidationException <int> >(() => betweenOneAndTen.Get());
        }
Ejemplo n.º 5
0
        public void ValidateValue_WithValidValue_DoesNotThrowException()
        {
            var betweenOneAndTen = new ComparableExodataDeclaration <int>(1, 10, 5);

            var resolver = new StandardExodataResolver();

            resolver.Bind(betweenOneAndTen, 7);

            ExodataDeclaration.SetResolver(resolver);

            Assert.AreEqual(7, betweenOneAndTen.Get());
        }
        public void Resolve_WithDerivedInstance_YieldsMostDerivedBindingsExodata()
        {
            var resolver = new StandardExodataResolver();

            resolver.Bind(CommonExodata.Description)
            .For <DerivedTestSubject>()
            .To("Derived Surrogate Description");


            BaseTestSubjectExodataSurrogate.ShouldYieldInstanceExodata = true;

            var value = resolver.TryResolve(CommonExodata.Description).For(new DerivedTestSubject());

            Assert.AreEqual("Derived Surrogate Description", value);
        }
Ejemplo n.º 7
0
        public void Get_WithValidArguments_ReturnsExodataResolverResults()
        {
            var maxLength = new ExodataDeclaration <int>(7);

            var resolver = new StandardExodataResolver();

            resolver.Bind(maxLength)
            .For <string>()
            .To(42);

            ExodataDeclaration.SetResolver(resolver);

            var value = maxLength.For <string>();

            Assert.AreEqual(42, value);
        }
Ejemplo n.º 8
0
        public void Get_WithNoExodataResolver_UsesResolverFromIoc()
        {
            var maxLength = new ExodataDeclaration <int>(7);

            var exodataResolver = new StandardExodataResolver();

            exodataResolver.Bind(maxLength)
            .For <string>()
            .To(42);

            Ioc.SetDependencyResolver(new DependencyResolver(symbol => symbol.ToMaybe().OfType <IDependencySymbol>().Where(x => x.DependencyType == typeof(IExodataResolver)).Select(x => (object)exodataResolver)));

            var value = maxLength.For <string>();

            Assert.AreEqual(42, value);
        }