public void ReturnAnInstanceOfMvcControllerProxyWithControllerNameSet_WhenResolveMvcDesignerIsCalledWithWidgetTypeThatIsPresentInMvcDesignerStore()
        {
            PowerTools.Instance.Mvc.RegisterDesigner<Widget, WidgetDesigner>();

            var propEditor = new ExtendedPropertyEditorWrapper();
            var designer = propEditor.InvokeResolveMvcDesigner(typeof(Widget));

            Assert.IsNotNull(designer);
            Assert.IsInstanceOfType(designer, typeof(MvcControllerProxy));
            Assert.AreEqual(typeof(WidgetDesigner).FullName, designer.ControllerName);
        }
        public void ReturnTheActualTypeOfControlData_WhenResolveWidgetTypeIsCallWithATypeThatIsNotMvcControllerProxy()
        {
            var pageControl = new PageControl();
            pageControl.ObjectType = typeof(Widget).FullName;

            TypeResolutionService.RegisterType(typeof(Widget));

            var propEditor = new ExtendedPropertyEditorWrapper();
            var widgetType = propEditor.InvokeResolveWidgetType(pageControl);

            Assert.AreEqual(typeof(Widget), widgetType);
        }
        public void ReturnTheTypeOfTheController_WhenResolveWidgetTypeIsCalledWithATypeThatIsMvcControllerProxy()
        {
            var pageControl = new PageControl();
            pageControl.ObjectType = typeof(MvcControllerProxy).FullName;
            pageControl.Properties.Add(new ControlProperty()
            {
                Name = "ControllerName",
                Value = typeof(WidgetDesigner).FullName
            });

            TypeResolutionService.RegisterType(typeof(WidgetDesigner));

            var propEditor = new ExtendedPropertyEditorWrapper();
            var widgetType = propEditor.InvokeResolveWidgetType(pageControl);

            Assert.AreEqual(typeof(WidgetDesigner), widgetType);
        }
 public void ThrowAnException_WhenResolveWidgetTypeIsCalledWithNullForControlDataArgument()
 {
     try
     {
         var propEditor = new ExtendedPropertyEditorWrapper();
         propEditor.InvokeResolveWidgetType(null);
         Assert.Fail("ArgumentNullException was supposed to be thrown.");
     }
     catch (ArgumentNullException ex)
     {
         Assert.AreEqual("ctrlData", ex.ParamName);
     }
 }
 public void ThrowAnException_WhenResolveMvcDesignerIsCalledWithWidgetTypeArgumentBeingNull()
 {
     try
     {
         var propEditor = new ExtendedPropertyEditorWrapper();
         propEditor.InvokeResolveMvcDesigner(null);
         Assert.Fail("ArgumentNullException was supposed to be thrown.");
     }
     catch (ArgumentNullException ex)
     {
         Assert.AreEqual("widgetType", ex.ParamName);
     }
 }
 public void ReturnNull_WhenResolveMvcDesignerIsCalledAndNoDesignerForPassedWidgetTypeIsPresentInTheMvcDesignerStore()
 {
     var propEditor = new ExtendedPropertyEditorWrapper();
     var designer = propEditor.InvokeResolveMvcDesigner(typeof(Widget));
     Assert.IsNull(designer);
 }