Beispiel #1
0
        public void Get_WithNoExodataResolver_ReturnsDefault()
        {
            var maxLength = new ExodataDeclaration <int>(7);

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

            Assert.AreEqual(7, value);
        }
Beispiel #2
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);
        }
Beispiel #3
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);
        }
Beispiel #4
0
        public void Get_OnGenericExodataWithDeclaration_ProvidesAllArgumentsToResolver()
        {
            var maxLength = new ExodataDeclaration <int>(7);

            var resolver = MockRepository.GenerateMock <IExodataResolver>();

            resolver.Expect(x => x.TryResolve <int, object, string>(null))
            .Callback <IExodataRequest <int, object, string> >(r => r.Symbol == maxLength &&
                                                               r.Context == Maybe <object> .NoValue &&
                                                               r.Subject == Maybe <string> .NoValue &&
                                                               r.Member == null)
            .Return(42.ToMaybe());

            ExodataDeclaration.SetResolver(resolver);

            maxLength.For <string>();
            resolver.VerifyAllExpectations();
        }
Beispiel #5
0
        public void Get_OnGenericExodataWithDeclarationSubjectAndMember_ProvidesAllArgumentsToResolver()
        {
            var    maxLength = new ExodataDeclaration <int>(7);
            string subject   = "Hello, World!";

            Expression <Func <string, object> > expression = x => x.Length;
            var member = expression.ExtractMemberInfoForExodata <string>();

            var resolver = MockRepository.GenerateMock <IExodataResolver>();

            resolver.Expect(x => x.TryResolve <int, object, string>(null))
            .Callback <IExodataRequest <int, object, string> >(r => r.Symbol == maxLength &&
                                                               r.Context == Maybe <object> .NoValue &&
                                                               r.Subject == subject &&
                                                               r.Member == member)
            .Return(42.ToMaybe());

            ExodataDeclaration.SetResolver(resolver);

            maxLength.For(subject, expression);
            resolver.VerifyAllExpectations();
        }