Exemplo n.º 1
0
        public void register_a_string_conversion_for_a_class()
        {
            stringifier.ForClass<Address>(a => "{0}, {1}".ToFormat(a.Address1, a.City));

            var address = new Address
            {
                Address1 = "2050 Ozark",
                City = "Joplin"
            };

            stringifier.GetString(typeof (Address), address).ShouldEqual("2050 Ozark, Joplin");
        }
Exemplo n.º 2
0
        public void store_and_retrieve_objects()
        {
            var address = new Address();
            var model = new AddressViewModel();

            var session = new BasicSessionState();
            session.Set(address);
            session.Set(model);

            session.Get<Address>().ShouldBeTheSameAs(address);
            session.Get<AddressViewModel>().ShouldBeTheSameAs(model);
        }
        public void set_a_property_correctly_against_a_binding_context()
        {
            var address = new Address();
            context.WithData("Address1", "2035 Ozark");
            context.StartObject(address);

            var property = ReflectionHelper.GetProperty<Address>(x => x.Address1);

            converter.Bind(property, context);

            address.Address1.ShouldEqual("2035 Ozark");
        }
Exemplo n.º 4
0
        public void register_a_property_override_for_a_string_conversion()
        {
            //default formatting for Address objects
            stringifier.IfIsType<Address>(a => "{0}, {1}".ToFormat(a.Address1, a.City));
            //specific override formatting for Address objects named Shipping
            stringifier.IfPropertyMatches<Address>(prop => prop.Name == "Shipping", a => "{1}-{0}".ToFormat(a.Address1, a.City));

            var address = new Address
            {
                Address1 = "2050 Ozark",
                City = "Joplin"
            };

            const string expectedDefaultFormatting = "2050 Ozark, Joplin";
            const string expectedOverrideFormatting = "Joplin-2050 Ozark";
            stringifier.GetString(ReflectionHelper.GetProperty<FakeSite>(s => s.Billing), address).ShouldEqual(expectedDefaultFormatting);
            stringifier.GetString(ReflectionHelper.GetProperty<FakeSite>(s => s.Shipping), address).ShouldEqual(expectedOverrideFormatting);
        }
Exemplo n.º 5
0
        public void SetUp()
        {
            var registry =
                new FubuRegistry(
                    x => { x.StringConversions(s => { s.ForStruct<DateTime>(d => d.ToShortDateString()); }); });

            container = new Container(x => x.For<IFubuRequest>().Singleton());
            var facility = new StructureMapContainerFacility(container);

            new FubuBootstrapper(facility, registry).Bootstrap(new List<RouteBase>());

            var request = container.GetInstance<IFubuRequest>();

            address = new Address();
            request.Set(address);

            request.Get<Address>().ShouldBeTheSameAs(address);

            generator = container.GetInstance<TagGenerator<Address>>();
        }
Exemplo n.º 6
0
        public void SetUp()
        {
            var registry = new FubuRegistry(x =>
            {
                x.HtmlConvention<OverrideFieldLayout>();
            });
            container = new Container(x => x.For<IFubuRequest>().Singleton());

            FubuApplication.For(registry)
                .StructureMap(container)
                .Bootstrap();

            var request = container.GetInstance<IFubuRequest>();

            address = new Address();
            request.Set(address);
            request.Get<Address>().ShouldBeTheSameAs(address);

            generator = container.GetInstance<TagGenerator<Address>>();
            generator.Model = address;
        }
        public void SetUp()
        {
            var registry = new FubuRegistry(x => x.HtmlConvention<TestHtmlConventions>());
            container = new Container(x => x.For<IFubuRequest>().Singleton());
            var facility = new StructureMapContainerFacility(container);

            new FubuBootstrapper(facility, registry).Bootstrap(new List<RouteBase>());

            var request = container.GetInstance<IFubuRequest>();

            address = new Address();
            request.Set(address);

            request.Get<Address>().ShouldBeTheSameAs(address);

            generator = container.GetInstance<TagGenerator<Address>>();
        }
Exemplo n.º 8
0
        public void SetUp()
        {
            TagBuilder textboxes = request => new TextboxTag().Attr("value", request.RawValue);
            TagBuilder checkboxes = request => new CheckboxTag(request.Value<bool>());

            TagModifier setName = (def, tag) => tag.Attr("name", def.ElementId);
            TagModifier setRequired = (def, tag) => tag.AddClass("required");

            factory = new TagFactory();
            factory.AddBuilder(new LambdaElementBuilder(def => def.Is<string>(), def => textboxes));
            factory.AddBuilder(new LambdaElementBuilder(def => def.Is<bool>(), def => checkboxes));

            factory.AddModifier(new LambdaElementModifier(def => true, def => setName));
            factory.AddModifier(new LambdaElementModifier(def => def.Accessor.HasAttribute<FakeRequiredAttribute>(),
                                                          def => setRequired));

            address = new Address();
        }
        public void Setup()
        {
            var registry = new FubuRegistry(x =>
            {

                x.HtmlConvention<DefaultHtmlConventions>();
            });
            var container = new Container(x => x.For<IFubuRequest>().Singleton());

            FubuApplication.For(registry).StructureMap(container).Bootstrap();

            Model = new Address
            {
                Address1 = "123 Main St.",
                DateEntered = new DateTime(2010, 5, 25, 11, 30, 0),
                Order = 42
            };
            container.GetInstance<IFubuRequest>().Set(Model);

            Generator = container.GetInstance<TagGenerator<Address>>();
            Generator.Model = Model;
            Tag = createTag();
        }
        public void Setup()
        {
            var registry = new FubuRegistry(x => x.HtmlConvention<DefaultHtmlConventions>());
            var container = new Container(x => x.For<IFubuRequest>().Singleton());
            var facility = new StructureMapContainerFacility(container);

            new FubuBootstrapper(facility, registry).Bootstrap(new List<RouteBase>());
            Model = new Address
            {
                Address1 = "123 Main St.",
                DateEntered = new DateTime(2010, 5, 25, 11, 30, 0),
                Order = 42
            };
            container.GetInstance<IFubuRequest>().Set(Model);

            Generator = container.GetInstance<TagGenerator<Address>>();
            Generator.Model = Model;
            Tag = createTag();
        }
        public void SetUp()
        {
            var projection = new Projection<Address>(DisplayFormatting.RawValues);
            projection.Value(x => x.Address1);
            projection.Value(x => x.Address2);
            projection.Value(x => x.City);
            projection.Value(x => x.StateOrProvince).Name("State");

            theXmlMediaOptions = new XmlMediaOptions(){
                Root = "Address"
            };
            theDocument = new XmlMediaDocument(theXmlMediaOptions);

            var urls = new StubUrlRegistry();

            var linkSource = new LinksSource<Address>();
            linkSource.ToSubject().Rel("self");
            linkSource.To(a => new AddressAction("change")).Rel("change");
            linkSource.To(a => new AddressAction("delete")).Rel("delete");

            var media = new MediaWriter<Address>(theDocument, linkSource, urls, projection, null);

            theAddress = new Address(){
                Address1 = "22 Cherry Lane",
                Address2 = "Apt A",
                City = "Austin",
                StateOrProvince = "Texas"
            };

            theOutput = new InMemoryOutputWriter();
            media.Write(theAddress, theOutput);

            Debug.WriteLine(theOutput);
        }