コード例 #1
0
        public void RunAllUnprocessors_Runs_All_Unprocessors_For_All_Views()
        {
            TrackingProcessor trackingProcessor2 = new TrackingProcessor();

            SupportView view = new SupportView();
            ObjectWhichExtendsSupportView viewA = new ObjectWhichExtendsSupportView();

            ViewProcessorMapping mapping  = new ViewProcessorMapping(new TypeMatcher().AllOf(view.GetType()).CreateTypeFilter(), trackingProcessor);
            ViewProcessorMapping mappingA = new ViewProcessorMapping(new TypeMatcher().AllOf(viewA.GetType()).CreateTypeFilter(), trackingProcessor2);

            viewProcessorFactory.RunProcessors(view, view.GetType(), new ViewProcessorMapping[1] {
                mapping
            });
            viewProcessorFactory.RunProcessors(viewA, viewA.GetType(), new ViewProcessorMapping[2] {
                mapping, mappingA
            });

            viewProcessorFactory.RunAllUnprocessors();

            Assert.That(trackingProcessor.UnprocessedViews, Is.EquivalentTo(new object[2] {
                view, viewA
            }), "trackingProcessor unprocessed all views");
            Assert.That(trackingProcessor2.UnprocessedViews, Is.EquivalentTo(new object[1] {
                viewA
            }), "trackingProcessor2 unprocessed all views");
        }
コード例 #2
0
        protected override void OnInitializeOriginalView()
        {
            base.OnInitializeOriginalView();

            OriginalView.SetSingleLine(true);
            if (Build.VERSION.SdkInt < BuildVersionCodes.JellyBean)
            {
                OriginalView.SetBackgroundDrawable(gradientDrawable);
            }
            else
            {
                OriginalView.SetBackground(gradientDrawable);
            }
            OriginalView.SetPadding((int)SupportView.PaddingInside, 0, (int)SupportView.PaddingInside, 0);
            OriginalView.TextSize = (float)SupportView.FontSize;
            OriginalView.SetTextColor(SupportView.TextColor.ToAndroid());
            OriginalView.TextAlignment = Android.Views.TextAlignment.Center;
            OriginalView.Typeface      = SpecAndroid.CreateTypeface(Context, SupportView.FontFamily.Split('#')[0]);
            OriginalView.Hint          = SupportView.Placeholder;

            OriginalView.Focusable            = true;
            OriginalView.FocusableInTouchMode = true;
            OriginalView.RequestFocusFromTouch();

            OriginalView.FocusChange += OriginalView_FocusChange;
            OriginalView.TextChanged += OriginalView_TextChanged;
            OriginalView.InitlizeReturnKey(SupportView.ReturnType);
            OriginalView.EditorAction += (sender, ev) =>
            {
                SupportView.SendOnReturnKeyClicked();
            };
        }
コード例 #3
0
        protected virtual void Wrapper_EditingChanged(object sender, EventArgs e)
        {
            var textFieldInput = sender as UITextField;

            SupportView.SendOnTextChanged(textFieldInput.Text);
            RunFilterAutocomplete(textFieldInput.Text);
        }
コード例 #4
0
        public void hook_receives_mediator_and_mediatedItem()
        {
            SupportView mediatedItem     = new SupportView();
            object      injectedMediator = null;
            object      injectedView     = null;

            injector.Map(typeof(Action <MediatorHook>), "callback").ToValue((Action <MediatorHook>) delegate(MediatorHook hook) {
                injectedMediator = hook.mediator;
                injectedView     = hook.mediatedItem;
            });

            MediatorMapping mapping = new MediatorMapping(CreateTypeFilter(
                                                              new Type[1] {
                typeof(SupportView)
            }),
                                                          typeof(ViewInjectedMediator));

            mapping.WithHooks(typeof(MediatorHook));

            factory.CreateMediators(mediatedItem, typeof(SupportView), new List <IMediatorMapping> {
                mapping
            });

            Assert.That(injectedMediator, Is.InstanceOf <ViewInjectedMediator>());
            Assert.That(injectedView, Is.EqualTo(mediatedItem));
        }
コード例 #5
0
        public void Mediator_Lifecycle_Methods_Are_Invoked()
        {
            List <string> expected = new List <string> {
                "preInitialize", "initialize", "postInitialize",
                "preDestroy", "destroy", "postDestroy"
            };
            List <string> actual = new List <string>();

            foreach (string phase in expected)
            {
                Action <string> callback = delegate(string ph) {
                    actual.Add(ph);
                };
                injector.Map(typeof(Action <string>), phase + "Callback").ToValue(callback);
            }
            SupportView      item     = new SupportView();
            object           mediator = injector.InstantiateUnmapped(typeof(LifecycleReportingMediator));
            IMediatorMapping mapping  = new MediatorMapping(CreateTypeFilter(new Type[1] {
                typeof(SupportView)
            }), typeof(LifecycleReportingMediator));

            manager.AddMediator(mediator, item, mapping);
            manager.RemoveMediator(mediator, item, mapping);

            Assert.That(actual, Is.EquivalentTo(expected));
        }
コード例 #6
0
 public void Setup()
 {
     injector  = new RobotlegsInjector();
     manager   = new MediatorManager();
     container = new SupportView();
     container.AddThisView();
     factory = new Mock <IMediatorFactory> ();
 }
コード例 #7
0
        public void AddViewListener_With_Basic_View_Component_Throws_Error()
        {
            SupportView basicView = new SupportView();

            instance.viewComponent = basicView;
            instance.Try_addViewListener(EVENT_TYPE, CALLBACK);
            logger.Verify(_logger => _logger.Warn(It.IsAny <String>(), It.Is <object>(mediator => mediator == instance), It.Is <object>(vc => vc == basicView)), Times.Once);
        }
コード例 #8
0
 public override void IF_ItemSelectd(int position)
 {
     if (!SupportView.IsAllowMultiSelect)
     {
         base.IF_ItemSelectd(position);
     }
     SupportView.SendOnItemSelected(position);
 }
コード例 #9
0
        public void Setup()
        {
            injector = new RobotlegsInjector();
            instance = new ViewProcessorMap(new ViewProcessorFactory(injector));

            mediatorWatcher = new MediatorWatcher();
            injector.Map(typeof(MediatorWatcher)).ToValue(mediatorWatcher);
            matchingView = new SupportView();
        }
コード例 #10
0
        public void adding_fallback_should_be_found_as_parent()
        {
            object fallback = new object();

            registry.SetFallbackContainer(fallback);
            object           newView       = new SupportView();
            ContainerBinding parentBinding = registry.FindParentBinding(newView);

            Assert.That(parentBinding.Container, Is.EqualTo(fallback));
        }
コード例 #11
0
        public void no_mediator_is_created_if_guard_prevents_it()
        {
            mediatorMap.Map(typeof(SupportView)).ToMediator(typeof(ExampleMediatorWatcher)).WithGuards(typeof(OnlyIfViewHasChildrenGuard));
            SupportView view = new SupportView();

            mediatorMap.Mediate(view);

            List <string> expectedNotifications = new List <string>();

            Assert.That(expectedNotifications, Is.EqualTo(mediatorWatcher.Notifications).AsCollection);
        }
コード例 #12
0
        public void mediatedItem_is_injected_as_exact_type_into_mediator()
        {
            SupportView      expected = new SupportView();
            IMediatorMapping mapping  = new MediatorMapping(CreateTypeFilter(new Type[1] {
                typeof(SupportView)
            }), typeof(ViewInjectedMediator));
            ViewInjectedMediator mediator = factory.CreateMediators(expected, typeof(SupportView), new List <IMediatorMapping> {
                mapping
            })[0] as ViewInjectedMediator;

            Assert.That(mediator.mediatedItem, Is.EqualTo(expected));
        }
コード例 #13
0
        public void handler_is_called()
        {
            SupportView expected = new SupportView();
            object      actual   = null;

            viewManager.AddContainer(container);
            viewManager.AddViewHandler(new CallbackViewHandler(delegate(object view, Type type) {
                actual = view;
            }));
            container.AddChild(expected);
            Assert.That(actual, Is.EqualTo(expected));
        }
コード例 #14
0
 public void Setup()
 {
     injector = new RobotlegsInjector();
     injector.Map(typeof(RobotlegsInjector)).ToValue(injector);
     viewProcessorMap   = new ViewProcessorMap(new ViewProcessorFactory(injector));
     trackingProcessor  = new TrackingProcessor();
     trackingProcessor2 = new TrackingProcessor();
     matchingView       = new SupportView();
     nonMatchingView    = new ObjectB();
     guardObject        = new GuardObject();
     matchingView2      = new SupportViewWithWidthAndHeight();
 }
コード例 #15
0
        public void Mediator_Is_Given_View()
        {
            SupportView      expected = new SupportView();
            IMediatorMapping mapping  = new MediatorMapping(CreateTypeFilter(new Type[1] {
                typeof(SupportView)
            }), typeof(LifecycleReportingMediator));
            LifecycleReportingMediator mediator = injector.InstantiateUnmapped(typeof(LifecycleReportingMediator)) as LifecycleReportingMediator;

            manager.AddMediator(mediator, expected, mapping);

            Assert.That(mediator.view, Is.EqualTo(expected));
        }
コード例 #16
0
        public void second_view_container_is_ignored()
        {
            IContextView actual     = null;
            SupportView  secondView = new SupportView();

            context.Install <ContextViewExtension>().Configure(new ContextView(view), new ContextView(secondView));
            context.WhenInitializing((Action) delegate() {
                actual = context.injector.GetInstance <IContextView>();
            });
            context.Initialize();
            Assert.That(actual.view, Is.EqualTo(view));
        }
コード例 #17
0
 protected virtual void OriginalView_TextChanged(object sender, Android.Text.TextChangedEventArgs e)
 {
     //dm cam sua cho nay
     if (FlagSetText)
     {
         FlagSetText = false;
     }
     else
     {
         SupportView.SendOnTextChanged(e.Text.ToString());
     }
 }
コード例 #18
0
        public void Setup()
        {
            root       = new SupportView();
            parentView = new SupportView();
            childView  = new SupportView();

            parentContext = new Context()
                            .Install(typeof(StageSyncExtension))
                            .Install(typeof(ContextViewExtension));
            childContext = new Context()
                           .Install(typeof(StageSyncExtension))
                           .Install(typeof(ContextViewExtension));
        }
コード例 #19
0
        public void getMediator()
        {
            SupportView      mediatedItem = new SupportView();
            IMediatorMapping mapping      =
                new MediatorMapping(CreateTypeFilter(new Type[1] {
                typeof(SupportView)
            }), typeof(CallbackMediator));

            factory.CreateMediators(mediatedItem, typeof(SupportView), new List <IMediatorMapping> {
                mapping
            });
            Assert.That(factory.GetMediator(mediatedItem, mapping), Is.Not.Null);
        }
コード例 #20
0
        public void Create_Mediator_Instantiates_Mediator_For_View_When_Mapped()
        {
            instance.Map(typeof(SupportView)).ToProcess(new MediatorCreator(typeof(SupportMediator)));

            SupportView objA = new SupportView();

            instance.HandleView(objA, objA.GetType());
            objA.AddThisView();

            string[] expectedNotifications = new string[1] {
                "SupportMediator"
            };
            Assert.That(expectedNotifications, Is.EquivalentTo(mediatorWatcher.Notifications));
        }
コード例 #21
0
        public void handler_is_not_called_after_container_removal()
        {
            int callCount = 0;

            viewManager.AddContainer(container);
            viewManager.AddViewHandler(new CallbackViewHandler(delegate(object view, Type type) {
                callCount++;
            }));
            viewManager.RemoveContainer(container);
            SupportView supportView = new SupportView();

            container.AddChild(supportView);
            Assert.That(callCount, Is.EqualTo(0));
        }
コード例 #22
0
        public void only_one_mediator_created_if_identical_mapping_duplicated()
        {
            mediatorMap.Map(typeof(SupportView)).ToMediator(typeof(ExampleMediatorWatcher)).WithGuards(typeof(HappyGuard)).WithHooks(typeof(AddChildHook));
            mediatorMap.Map(typeof(SupportView)).ToMediator(typeof(ExampleMediatorWatcher)).WithGuards(typeof(HappyGuard)).WithHooks(typeof(AddChildHook));

            SupportView view = new SupportView();

            mediatorMap.Mediate(view);
            List <string> expectedNotifications = new List <string> {
                "ExampleMediatorWatcher"
            };

            Assert.That(expectedNotifications, Is.EqualTo(mediatorWatcher.Notifications).AsCollection);
            Assert.That(view.NumChildren, Is.EqualTo(1));
        }
コード例 #23
0
        public void Runs_Destroy_On_Created_Mediator_When_Unprocess_Runs()
        {
            instance.Map(typeof(SupportView)).ToProcess(new MediatorCreator(typeof(SupportMediator)));

            SupportView view = new SupportView();

            instance.Process(view);
            instance.Unprocess(view);

            List <string> expectedNotifications = new List <string> {
                "SupportMediator", "SupportMediator destroy"
            };

            Assert.That(expectedNotifications, Is.EquivalentTo(mediatorWatcher.Notifications));
        }
コード例 #24
0
        public void Mediator_For_UIComponent_Is_Initialized()
        {
            SupportView      view    = new SupportView();
            IMediatorMapping mapping = new MediatorMapping(CreateTypeFilter(new Type[1] {
                typeof(SupportView)
            }), typeof(LifecycleReportingMediator));
            LifecycleReportingMediator mediator = injector.InstantiateUnmapped(typeof(LifecycleReportingMediator)) as LifecycleReportingMediator;

            factory.Setup(f => f.GetMediator(It.IsAny <object> (), It.IsAny <IMediatorMapping>())).Returns(mediator);
            Assert.That(mediator.initialized, Is.False);
            manager.AddMediator(mediator, view, mapping);
            container.AddChild(view);

            Assert.That(mediator.initialized, Is.True);
        }
コード例 #25
0
        public void unmediate_cleans_up_mediators()
        {
            mediatorMap.Map(typeof(SupportView)).ToMediator(typeof(ExampleMediatorWatcher));

            SupportView view = new SupportView();

            mediatorMap.Mediate(view);
            mediatorMap.Unmediate(view);

            List <string> expectedNotifications = new List <string> {
                "ExampleMediatorWatcher", "ExampleMediatorWatcher destroy"
            };

            Assert.That(expectedNotifications, Is.EqualTo(mediatorWatcher.Notifications).AsCollection);
        }
コード例 #26
0
        public void expected_number_of_mediators_are_returned_for_mappings_and_mediatedItem()
        {
            SupportView     mediatedItem = new SupportView();
            MediatorMapping mapping1     =
                new MediatorMapping(CreateTypeFilter(new Type[1] {
                typeof(SupportView)
            }), typeof(ViewInjectedMediator));
            MediatorMapping mapping2 =
                new MediatorMapping(CreateTypeFilter(new Type[1] {
                typeof(SupportContainer)
            }), typeof(ViewInjectedAsRequestedMediator));
            List <object> mediators = factory.CreateMediators(mediatedItem, typeof(SupportView), new List <IMediatorMapping> {
                mapping1, mapping2
            });

            Assert.That(mediators.Count, Is.EqualTo(2));
        }
コード例 #27
0
        public override void OnInitializeTextField()
        {
            base.OnInitializeTextField();
            OnInitializePlaceHolderTextField();
            textField.LeftView     = new UIView(new CGRect(0, 0, SupportView.PaddingInside, 0));
            textField.LeftViewMode = UITextFieldViewMode.Always;

            textField.EditingChanged     += Wrapper_EditingChanged;;
            textField.ShouldEndEditing   += Wrapper_ShouldEndEditing;
            textField.ShouldBeginEditing += Wrapper_ShouldBeginEditing;
            textField.ShouldReturn       += (textField) =>
            {
                SupportView.SendOnReturnKeyClicked();
                return(true);
            };
            textField.InitlizeReturnKey(SupportView.ReturnType);
        }
コード例 #28
0
        public void Multiple_Depths_Of_Children_Only_Inherit_The_First_Parents_Injector()
        {
            AddRootToStage();

            parentContext
            .Install(typeof(TestSupportViewStateWatcherExtension))
            .Install(typeof(SupportParentFinderExtension))
            .Install(typeof(ModularityExtension))
            .Configure(new ContextView(parentView));

            childContext
            .Install(typeof(TestSupportViewStateWatcherExtension))
            .Install(typeof(ModularityExtension))
            .Install(typeof(SupportParentFinderExtension))
            .Configure(new ContextView(childView));


            SupportView anotherChildView    = new SupportView();
            IContext    anotherChildContext = new Context()
                                              .Install(typeof(TestSupportViewStateWatcherExtension))
                                              .Install(typeof(StageSyncExtension))
                                              .Install(typeof(ContextViewExtension))
                                              .Install(typeof(ModularityExtension))
                                              .Install(typeof(SupportParentFinderExtension))
                                              .Configure(new ContextView(anotherChildView));


            ContainerRegistry cr = new ContainerRegistry();

            parentContext.injector.Map(typeof(ContainerRegistry)).ToValue(cr);
            childContext.injector.Map(typeof(ContainerRegistry)).ToValue(cr);
            anotherChildContext.injector.Map(typeof(ContainerRegistry)).ToValue(cr);

            cr.AddContainer(parentView);
            cr.AddContainer(childView);
            cr.AddContainer(anotherChildView);

            root.AddChild(parentView);
            parentView.AddChild(childView);
            childView.AddChild(anotherChildView);

            Assert.That(childContext.injector.parent, Is.EqualTo(parentContext.injector));
            Assert.That(anotherChildContext.injector.parent, Is.EqualTo(childContext.injector));
            Assert.That(anotherChildContext.injector.parent, Is.Not.EqualTo(parentContext.injector));
        }
コード例 #29
0
        public override void OnInitializeTextField()
        {
            base.OnInitializeTextField();
            textField.AttributedPlaceholder = new NSAttributedString(SupportView.Placeholder, font: UIFont.FromName(SupportView.FontFamily, size: (float)SupportView.FontSize));
            textField.Placeholder           = SupportView.Placeholder;
            textField.LeftView     = new UIView(new CGRect(0, 0, SupportView.PaddingInside, 0));
            textField.LeftViewMode = UITextFieldViewMode.Always;

            textField.EditingChanged     += Wrapper_EditingChanged;;
            textField.ShouldEndEditing   += Wrapper_ShouldEndEditing;
            textField.ShouldBeginEditing += Wrapper_ShouldBeginEditing;
            textField.ShouldReturn       += (textField) =>
            {
                SupportView.SendOnReturnKeyClicked();
                return(true);
            };
            textField.InitlizeReturnKey(SupportView.ReturnType);
        }
コード例 #30
0
        public void removeMediator_removes_mediator_from_manager()
        {
            SupportView      mediatedItem = new SupportView();
            IMediatorMapping mapping      =
                new MediatorMapping(CreateTypeFilter(new Type[1] {
                typeof(SupportView)
            }), typeof(CallbackMediator));

            injector.Map <IMediatorManager> ().ToValue(manager.Object);
            factory = new MediatorFactory(injector);
            factory.CreateMediators(mediatedItem, typeof(SupportView), new List <IMediatorMapping> {
                mapping
            });
            factory.RemoveMediators(mediatedItem);
            factory.RemoveMediators(mediatedItem);

            manager.Verify(_manager => _manager.RemoveMediator(It.IsAny <CallbackMediator> (), It.Is <object> (arg2 => arg2 == mediatedItem), It.Is <IMediatorMapping> (arg3 => arg3 == mapping)), Times.Once);
        }