예제 #1
0
        public void CanRegisterContentAndRetrieveIt()
        {
            MockServiceLocator locator = GetServiceLocator(new[] { "MyRegion" });
            var registry = (IRegionViewRegistry)locator.GetInstance(typeof(IRegionViewRegistry));

            registry.RegisterViewWithRegion("MyRegion", typeof(MockView));
            var result = registry.GetContents("MyRegion");

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Count());
            Assert.IsInstanceOfType(result.ElementAt(0), typeof(MockView));
        }
예제 #2
0
        public void CanRegisterContentAsDelegateAndRetrieveIt()
        {
            MockServiceLocator locator = GetServiceLocator(new[] { "MyRegion" });
            var registry = (IRegionViewRegistry)locator.GetInstance(typeof(IRegionViewRegistry));
            var content  = new MockView();

            registry.RegisterViewWithRegion("MyRegion", () => content);
            var result = registry.GetContents("MyRegion");

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Count());
            Assert.AreSame(content, result.ElementAt(0));
        }
예제 #3
0
        public void ShouldRaiseEventWhenAddingContent()
        {
            MockServiceLocator locator = GetServiceLocator(new[] { "MyRegion" });
            var listener = new MySubscriberClass();
            var registry = (IRegionViewRegistry)locator.GetInstance(typeof(IRegionViewRegistry));

            registry.ViewRegistered += listener.OnViewRegistered;

            registry.RegisterViewWithRegion("MyRegion", typeof(MockView));

            Assert.IsNotNull(listener.onViewRegisteredArguments);
            Assert.IsNotNull(listener.onViewRegisteredArguments.RegisteredView);

            var result = listener.onViewRegisteredArguments.Region;

            Assert.IsNotNull(result);
        }
예제 #4
0
        public void OnRegisterErrorShouldGiveClearException()
        {
            MockServiceLocator locator = GetServiceLocator(new[] { "R1" });
            var registry = (IRegionViewRegistry)locator.GetInstance(typeof(IRegionViewRegistry));

            registry.ViewRegistered += new EventHandler <ViewRegisteredEventArgs>(FailWithInvalidOperationException);

            try
            {
                registry.RegisterViewWithRegion("R1", typeof(object));
                Assert.Fail();
            }
            catch (ViewRegistrationException ex)
            {
                Assert.IsTrue(ex.Message.Contains("Dont do this"));
                Assert.IsTrue(ex.Message.Contains("R1"));
                Assert.AreEqual(ex.InnerException.Message, "Dont do this");
            }
            catch (Exception)
            {
                Assert.Fail("Wrong exception type");
            }
        }
예제 #5
0
        public void OnRegisterErrorShouldSkipFrameworkExceptions()
        {
            ExceptionExtensions.RegisterFrameworkExceptionType(typeof(FrameworkException));
            MockServiceLocator locator = GetServiceLocator(new[] { "R1" });
            var registry = (IRegionViewRegistry)locator.GetInstance(typeof(IRegionViewRegistry));

            registry.ViewRegistered += new EventHandler <ViewRegisteredEventArgs>(FailWithFrameworkException);

            try
            {
                registry.RegisterViewWithRegion("R1", typeof(object));
                Assert.Fail();
            }
            catch (ViewRegistrationException ex)
            {
                Assert.IsTrue(ex.Message.Contains("Dont do this"));
                Assert.IsTrue(ex.Message.Contains("R1"));
            }
            catch (Exception)
            {
                Assert.Fail("Wrong exception type");
            }
        }