public void TestBindToAbstraction() { string jsonString = "[{\"Bind\":\"strange.unittests.TestView2\",\"To\":\"strange.unittests.TestMediator\",\"ToAbstraction\":\"strange.unittests.TestView\"}]"; mediationBinder.ConsumeBindings(jsonString); injectionBinder.Bind <ClassToBeInjected> ().To <ClassToBeInjected> (); IBinding binding = mediationBinder.GetBinding <TestView2> (); Assert.NotNull(binding); Assert.AreEqual((binding as IMediationBinding).key, typeof(TestView2)); object[] value = (binding as IMediationBinding).value as object[]; Assert.Contains(typeof(TestMediator), value); TestView2 view = new TestView2(); mediationBinder.Trigger(MediationEvent.AWAKE, view); Assert.IsTrue(view.registeredWithContext); Assert.IsNotNull(view.testInjection); TestMediator mediator = mediationBinder.mediators [view] as TestMediator; Assert.AreEqual(1, mediationBinder.mediators.Count); Assert.IsNotNull(mediator); Assert.IsInstanceOf <TestMediator> (mediator); Assert.IsInstanceOf <TestView2> (mediator.view); }
public void Decorating() { var view = new TestView2(); var subviews = new ViewHierarchy(view, new FakeViewHierarchyBuilder()); CollectionAssert.AreEqual(new [] { "Applied", "Applied" }, new [] { view.View1.Info["Style1"], view.View1.Info["Style2"] }, "Multiple styles applied"); Assert.IsFalse(view.View2.PlatformView.Info.ContainsKey("Style1"), "Style1 not applied to view wrapper due to type mismatch"); Assert.AreEqual("Applied", view.View2.PlatformView.Info["Style3"], "Stype3 applied to view wrapper"); }
public void TestBindToAbstraction() { string jsonString = "[{\"Bind\":\"strange.unittests.TestView2\",\"To\":\"strange.unittests.TestMediator\",\"ToAbstraction\":\"strange.unittests.TestView\"}]"; mediationBinder.ConsumeBindings (jsonString); injectionBinder.Bind<ClassToBeInjected> ().To<ClassToBeInjected> (); IBinding binding = mediationBinder.GetBinding<TestView2> (); Assert.NotNull (binding); Assert.AreEqual ((binding as IMediationBinding).key, typeof(TestView2)); object[] value = (binding as IMediationBinding).value as object[]; Assert.Contains (typeof(TestMediator), value); TestView2 view = new TestView2 (); mediationBinder.Trigger (MediationEvent.AWAKE, view); Assert.IsTrue (view.registeredWithContext); Assert.IsNotNull (view.testInjection); TestMediator mediator = mediationBinder.mediators [view] as TestMediator; Assert.AreEqual (1, mediationBinder.mediators.Count); Assert.IsNotNull (mediator); Assert.IsInstanceOf<TestMediator> (mediator); Assert.IsInstanceOf<TestView2> (mediator.view); }