コード例 #1
0
        public void CanHandleFalsyValuesAndSubComponentStylesThatHasObjects()
        {
            Func <object, StyleSetFake> fn1 = (props) => new StyleSetFake {
                Root = new Style {
                    Background = "green", FontSize = 12
                }
            };

            Func <object, StyleSetFake> fn2 = (props) => new StyleSetFake {
                Root = new Style {
                    Background = "yellow", Color = "pink"
                }
            };

            var result = StyleEngine.ConcatStyleSet(false, new StyleSetFake
            {
                SubComponentStyles =
                {
                    ["A"] = fn1
                }
            }, new StyleSetFake
            {
                SubComponentStyles =
                {
                    ["A"] = fn2
                }
            },
                                                    null,
                                                    null,
                                                    false,
                                                    new StyleSetFake
            {
                SubComponentStyles =
                {
                    ["A"] = new StyleSetFake
                        {
                        Root = new Style
                        {
                        FontSize = 14
                        }
                        }
                }
            });

            Assert.IsTrue(result.ContainsKey(("sub-component-styles", "SubComponentStyles")));
            if (result.SubComponentStyles["A"] is Func <object, StyleSetFake> function)
            {
                var aExpanded = function(new StyleSetFake {
                });
                Assert.AreEqual(new StyleSetFake
                {
                    Root = new Style[] { new Style {
                                             Background = "green", FontSize = 12,
                                         }, new Style {
                                             Background = "yellow", Color = "pink"
                                         }, new Style {
                                             FontSize = 14
                                         } }
                }, aExpanded);
            }
            else
            {
                Assert.IsTrue(false, "The subcompoment must be a function");
            }
        }
コード例 #2
0
        public void CanConcatStylesSets()
        {
            var result = StyleEngine.ConcatStyleSet(new StyleSetFake
            {
                Root = new Style
                {
                    Background = "red"
                },
                A = new Style
                {
                    Background = "green"
                }
            }, new StyleSetFake
            {
                A = new Style
                {
                    Background = "white",
                },
                B = new Style
                {
                    Background = "blue"
                }
            }, new StyleSetFake
            {
                Root = new Style
                {
                    Selectors =
                    {
                        [":hover"] = new Style {
                            Background = "yellow"
                        }
                    }
                }
            });
            var expected = new StyleSetFake
            {
                Root = new Style[]
                {
                    new Style {
                        Background = "red"
                    },
                    new Style {
                        Selectors =
                        {
                            [":hover"] = new Style {
                                Background = "yellow"
                            }
                        }
                    }
                },
                A = new Style[]
                {
                    new Style {
                        Background = "green"
                    },
                    new Style {
                        Background = "white"
                    }
                },
                B = new Style
                {
                    Background = "blue"
                }
            };

            Assert.AreEqual(expected, result);
        }
コード例 #3
0
        public void CanConcatMixedStyleSetsWithStyleFunctionsOnBothEnds()
        {
            Func <object, StyleSetFake> fn1 = (prop) =>
            {
                return(new StyleSetFake()
                {
                    Root = new Style {
                        Background = "yellow"
                    },
                });
            };

            Func <object, StyleSetFake> fn2 = (porps) =>
            {
                return(new StyleSetFake
                {
                    Root = new Style
                    {
                        Background = "yellow",
                        Color = "pink"
                    }
                });
            };
            var result = StyleEngine.ConcatStyleSet(new StyleSetFake
            {
                Root = new Style {
                    Background = "red"
                },
                A = new Style {
                    Background = "green"
                },
                SubComponentStyles =
                {
                    ["A"] = fn1
                },
            }, new StyleSetFake
            {
                A = new Style {
                    Background = "white"
                },
                B = new Style {
                    Background = "blue"
                },
                SubComponentStyles =
                {
                    ["A"] = fn2
                }
            }, new StyleSetFake
            {
                Root = new Style
                {
                    Selectors =
                    {
                        [":hover"] = new Style {
                            Background = "yellow"
                        }
                    }
                }
            });

            Assert.AreEqual(new Style[] {
                new Style {
                    Background = "red"
                },
                new Style {
                    Selectors =
                    {
                        [":hover"] = new Style {
                            Background = "yellow"
                        }
                    }
                }
            }, result.Root);

            Assert.AreEqual(new Style {
                Background = "blue"
            }, result.B);
            Assert.AreEqual(new Style[] { new Style {
                                              Background = "green"
                                          }, new Style {
                                              Background = "white"
                                          } }, result.A);
            if (result.SubComponentStyles["A"] is Func <object, StyleSetFake> function)
            {
                var aExpanded = function(new StyleSetFake {
                });
                Assert.AreEqual(new StyleSetFake
                {
                    Root = new Style[] { new Style {
                                             Background = "green", FontSize = 12,
                                         }, new Style {
                                             Background = "yellow", Color = "pink"
                                         } }
                }, aExpanded);
            }
            else
            {
                Assert.IsTrue(false, "The subcompoment must be a function");
            }
        }