예제 #1
0
        public void BasicUsagePasses()
        {
            var query           = ".style1";
            var layoutValueDict = new ViewLayoutValueDictionary()
                                  .AddValue("key", 100)
                                  .AddValue("key2", 200);
            var layoutValueDict2 = new ViewLayoutValueDictionary()
                                   .AddValue("apple", -100)
                                   .AddValue("orange", -200);

            var layoutOverwriter = new ViewLayoutOverwriter();

            layoutOverwriter
            .Add(new ViewLayoutSelector(query, ""), layoutValueDict)
            .Add(new ViewLayoutSelector($"Model {query}", ""), layoutValueDict2);

            var model = new Model()
            {
                Name = "Model"
            }
            .AddStylingID(query);

            AssertionUtils.AssertEnumerable(
                new ViewLayoutValueDictionary[] {
                layoutValueDict2,
                layoutValueDict,
            }
                , layoutOverwriter.MatchLayoutValueDicts(model, null)
                , "");
        }
        public void AddSameKeywordValueFail()
        {
            var layoutValueDict = new ViewLayoutValueDictionary();
            var key             = "layoutName";
            var value           = 100;

            layoutValueDict.AddValue(key, value);


            Assert.Throws <System.ArgumentException>(() => {
                layoutValueDict.AddValue(key, 1.23f);
            }, $"Don't add same key...");
        }
        public void BasicUsagePasses()
        {
            var layoutValueDict = new ViewLayoutValueDictionary();
            var key             = "layoutName";
            var value           = 100;

            layoutValueDict.AddValue(key, value);
            Assert.IsTrue(layoutValueDict.ContainsKey(key), $"Don't have key({key})...");
            Assert.AreEqual(value, layoutValueDict.GetValue(key), $"Don't equal value... key={key}, correct={value}, got={layoutValueDict.GetValue(key)}");
            Assert.AreEqual(1, layoutValueDict.Count);

            layoutValueDict.RemoveValue(key);
            Assert.IsFalse(layoutValueDict.ContainsKey(key), $"Already have key({key})...");
            Assert.AreEqual(0, layoutValueDict.Count);
        }
        public void ClearPasses()
        {
            var layoutValueDict = new ViewLayoutValueDictionary();
            var key             = "layoutName";
            var key2            = "layoutName2";
            var key3            = "layoutName3";

            layoutValueDict
            .AddValue(key, 100)
            .AddValue(key2, "apple")
            .AddValue(key3, 1.23f);

            layoutValueDict.Clear();

            Assert.AreEqual(0, layoutValueDict.Count);
            Assert.IsFalse(layoutValueDict.ContainsKey(key), $"Don't clear Key({key})");
            Assert.IsFalse(layoutValueDict.ContainsKey(key2), $"Don't clear Key({key2})");
            Assert.IsFalse(layoutValueDict.ContainsKey(key3), $"Don't clear Key({key3})");
        }
예제 #5
0
        public void BasicUsageWithViewObjPasses()
        {
            var query           = ".style1";
            var viewID          = "view1";
            var viewID2         = "view2";
            var layoutValueDict = new ViewLayoutValueDictionary()
                                  .AddValue("key", 100)
                                  .AddValue("key2", 200);
            var layoutValueDict2 = new ViewLayoutValueDictionary()
                                   .AddValue("apple", -100)
                                   .AddValue("orange", -200);

            var layoutValueDict3 = new ViewLayoutValueDictionary()
                                   .AddValue("grape", -100);

            var layoutOverwriter = new ViewLayoutOverwriter();

            layoutOverwriter
            .Add(new ViewLayoutSelector(query, viewID), layoutValueDict)
            .Add(new ViewLayoutSelector($"Model {query}", viewID), layoutValueDict2)
            .Add(new ViewLayoutSelector($"Model {query}", viewID2), layoutValueDict3);

            var model = new Model()
            {
                Name = "Model"
            }
            .AddStylingID(query);
            var viewObj = new EmptyViewObject();

            viewObj.Bind(model, new ModelViewBinder.BindInfo(viewID, typeof(EmptyViewObject)), null);

            AssertionUtils.AssertEnumerable(
                new ViewLayoutValueDictionary[] {
                layoutValueDict2,
                layoutValueDict,
            }
                , layoutOverwriter.MatchLayoutValueDicts(model, viewObj)
                , "");
        }
예제 #6
0
 public static ViewLayoutValueDictionary AddKeyAndValues(this ViewLayoutValueDictionary target, params (System.Enum key, object value)[] keyAndValues)