Example #1
0
        public void BasicUsageSpecifiedViewIDPasses()
        {
            var query    = ".style";
            var viewID   = "view1";
            var selector = new ViewLayoutSelector(query, viewID);

            var model = new Model()
            {
                Name = "Model", StylingID = new ModelIDList(query)
            };
            var otherModel = new Model()
            {
                Name = "OtherModel", StylingID = new ModelIDList(".style2")
            };
            var testData = new List <(bool result, Model, IViewObject)>()
            {
                (false, model, null),
                (true, model, new EmptyViewObject()
                {
                    UseModel = model, UseBindInfo = new ModelViewBinder.BindInfo(viewID, typeof(EmptyViewObject))
                }),
                (false, model, new EmptyViewObject()
                {
                    UseModel = model, UseBindInfo = new ModelViewBinder.BindInfo("otherViewID", typeof(EmptyViewObject))
                }),
                (true, model, new HaveChildViewObject()
                {
                    UseModel = model, UseBindInfo = new ModelViewBinder.BindInfo(viewID, typeof(HaveChildViewObject))
                }),
                (false, model, new HaveChildViewObject()
                {
                    UseModel = model, UseBindInfo = new ModelViewBinder.BindInfo("view2", typeof(HaveChildViewObject))
                }),

                (false, otherModel, null),
                (false, otherModel, new EmptyViewObject()
                {
                    UseModel = otherModel, UseBindInfo = new ModelViewBinder.BindInfo(viewID, typeof(EmptyViewObject))
                }),
                (false, otherModel, new EmptyViewObject()
                {
                    UseModel = otherModel, UseBindInfo = new ModelViewBinder.BindInfo("otherViewID", typeof(EmptyViewObject))
                }),
                (false, otherModel, new HaveChildViewObject()
                {
                    UseModel = otherModel, UseBindInfo = new ModelViewBinder.BindInfo(viewID, typeof(HaveChildViewObject))
                }),
                (false, otherModel, new HaveChildViewObject()
                {
                    UseModel = otherModel, UseBindInfo = new ModelViewBinder.BindInfo("view2", typeof(HaveChildViewObject))
                }),
            };

            foreach (var(result, m, v) in testData)
            {
                Assert.AreEqual(result, selector.DoMatch(m, v), $"Failed test... selector={selector} result={result}, model={m}, viewObj={v}");
            }
        }
Example #2
0
        public void DoMatchThrowExceptionFail()
        {
            var query    = ".style";
            var selector = new ViewLayoutSelector(query, "view1");

            var model = new Model()
            {
                Name = "Model", StylingID = new ModelIDList(query)
            };
            var otherModel = new Model()
            {
                Name = "otherModel", StylingID = model.StylingID
            };
            var testData = new List <(Model, IViewObject)>()
            {
                (null, null),
                (model, new EmptyViewObject()
                {
                    UseModel = null, UseBindInfo = null
                }),
                (model, new EmptyViewObject()
                {
                    UseModel = model, UseBindInfo = null
                }),
                (model, new EmptyViewObject()
                {
                    UseModel = null, UseBindInfo = new ModelViewBinder.BindInfo("view1", typeof(EmptyViewObject))
                }),
                (model, new EmptyViewObject()
                {
                    UseModel = otherModel, UseBindInfo = new ModelViewBinder.BindInfo("view1", typeof(EmptyViewObject))
                }),
            };

            foreach (var(m, v) in testData)
            {
                Assert.Throws <UnityEngine.Assertions.AssertionException>(() => {
                    selector.DoMatch(m, v);
                }, $"Failed test... selecotr={selector}, model={m}, viewObj={v}");
            }
        }