public void MakeFilling(Generation currentGeneration)
 {
     Random random = new Random();
     for (int row = 0; row < currentGeneration.DimensionX; row++)
     {
         Region listRow = new Region();
         for (int column = 0; column < currentGeneration.DimensionY; column++)
         {
             listRow.Add(random.Next(0, 2));
         }
         currentGeneration.WriteRow(listRow);
     }
 }
 public Generation RewriteGeneration(Generation currentGeneration, Generation nextGeneration, Dimention dimentions)
 {
     currentGeneration.DimensionX = dimentions.RowEnd - dimentions.RowStart + 1;
     currentGeneration.DimensionY = dimentions.ColumnEnd - dimentions.ColumnStart + 1;
     currentGeneration.ClearContent();
     for (int row = 0; row < currentGeneration.DimensionX; row++)
     {
         Region listRow = new Region();
         for (int column = 0; column < currentGeneration.DimensionY; column++)
         {
             listRow.Add(nextGeneration.ReadValueXY(row + dimentions.RowStart, column + dimentions.ColumnStart));
         }
         currentGeneration.WriteRow(listRow);
     }
     return currentGeneration;
 }
Exemple #3
0
        public void WhenNavigatingAndBothViewAndDataContextImplementINavigationAware_ThenNavigatedIsInvokesOnNavigation()
        {
            // Prepare
            var region = new Region();

            Mock <FrameworkElement> mockFrameworkElement     = new Mock <FrameworkElement>();
            Mock <INavigationAware> mockINavigationAwareView = mockFrameworkElement.As <INavigationAware>();

            mockINavigationAwareView.Setup(ina => ina.IsNavigationTarget(It.IsAny <NavigationContext>())).Returns(true);

            Mock <INavigationAware> mockINavigationAwareDataContext = new Mock <INavigationAware>();

            mockINavigationAwareDataContext.Setup(ina => ina.IsNavigationTarget(It.IsAny <NavigationContext>())).Returns(true);
            mockFrameworkElement.Object.DataContext = mockINavigationAwareDataContext.Object;

            var view = mockFrameworkElement.Object;

            region.Add(view);

            var navigationUri = new Uri(view.GetType().Name, UriKind.Relative);

            var serviceLocatorMock = new Mock <IServiceLocator>();

            serviceLocatorMock.Setup(x => x.GetInstance <IRegionNavigationJournalEntry>()).Returns(new RegionNavigationJournalEntry());

            IServiceLocator serviceLocator = serviceLocatorMock.Object;
            RegionNavigationContentLoader contentLoader = new RegionNavigationContentLoader(serviceLocator);
            IRegionNavigationJournal      journal       = new Mock <IRegionNavigationJournal>().Object;

            RegionNavigationService target = new RegionNavigationService(serviceLocator, contentLoader, journal);

            target.Region = region;

            // Act
            target.RequestNavigate(navigationUri, nr => { });

            // Verify
            mockINavigationAwareView.Verify(v => v.OnNavigatedTo(It.Is <NavigationContext>(nc => nc.Uri == navigationUri)));
            mockINavigationAwareDataContext.Verify(v => v.OnNavigatedTo(It.Is <NavigationContext>(nc => nc.Uri == navigationUri)));
        }
Exemple #4
0
        public void WhenNavigatingAndDataContextOnCurrentlyActiveViewImplementsINavigateWithVeto_ThenNavigationRequestQueriesForVeto()
        {
            // Prepare
            var region = new Region();

            var viewModelMock = new Mock <IConfirmNavigationRequest>();

            viewModelMock
            .Setup(ina => ina.ConfirmNavigationRequest(It.IsAny <NavigationContext>(), It.IsAny <Action <bool> >()))
            .Verifiable();

            var viewMock = new Mock <FrameworkElement>();

            var view = viewMock.Object;

            view.DataContext = viewModelMock.Object;

            region.Add(view);
            region.Activate(view);

            var navigationUri = new Uri(view.GetType().Name, UriKind.Relative);

            var serviceLocatorMock = new Mock <IServiceLocator>();

            serviceLocatorMock.Setup(x => x.GetInstance <IRegionNavigationJournalEntry>()).Returns(new RegionNavigationJournalEntry());

            IServiceLocator serviceLocator = serviceLocatorMock.Object;
            RegionNavigationContentLoader contentLoader = new Mock <RegionNavigationContentLoader>(serviceLocator).Object;
            IRegionNavigationJournal      journal       = new Mock <IRegionNavigationJournal>().Object;

            RegionNavigationService target = new RegionNavigationService(serviceLocator, contentLoader, journal);

            target.Region = region;

            // Act
            target.RequestNavigate(navigationUri, nr => { });

            // Verify
            viewModelMock.VerifyAll();
        }
        public void WhenNavigatingWithQueryString_ViewIsActivated()
        {
            // Prepare
            object view    = new object();
            Uri    viewUri = new Uri(view.GetType().Name + "?MyQuery=true", UriKind.Relative);

            IRegion region = new Region();

            region.Add(view);

            string        regionName    = "RegionName";
            RegionManager regionManager = new RegionManager();

            regionManager.Regions.Add(regionName, region);

            var containerMock = new Mock <IContainerExtension>();

            containerMock.Setup(x => x.Resolve(typeof(IRegionNavigationJournalEntry))).Returns(new RegionNavigationJournalEntry());

            IContainerExtension           container     = containerMock.Object;
            RegionNavigationContentLoader contentLoader = new RegionNavigationContentLoader(container);
            IRegionNavigationJournal      journal       = new Mock <IRegionNavigationJournal>().Object;

            RegionNavigationService target = new RegionNavigationService(container, contentLoader, journal)
            {
                Region = region
            };

            // Act
            bool isNavigationSuccessful = false;

            target.RequestNavigate(viewUri, nr => isNavigationSuccessful = nr.Result == true);

            // Verify
            Assert.True(isNavigationSuccessful);
            bool isViewActive = region.ActiveViews.Contains(view);

            Assert.True(isViewActive);
        }
Exemple #6
0
        public void TestResetRecordNum()
        {
            Parameters p  = NetworkTestHarness.GetParameters();
            Region     r1 = Net.Network.Network.CreateRegion("r1");

            r1.Add(Net.Network.Network.CreateLayer <IInference>("l1", p).Add(new TemporalMemory()));
            //r1.Observe().Subscribe(new Observer<Inference>() {
            //    public void onCompleted() { }
            //     public void onError(Throwable e) { e.printStackTrace(); }
            //     public void onNext(Inference output)
            //    {
            //        System.Out.println("output = " + Arrays.toString(output.GetSDR()));
            //    }
            //});

            r1.Compute(new int[] { 2, 3, 4 });
            r1.Compute(new int[] { 2, 3, 4 });
            Assert.AreEqual(1, r1.Lookup("l1").GetRecordNum());

            r1.ResetRecordNum();
            Assert.AreEqual(0, r1.Lookup("l1").GetRecordNum());
        }
        public void WhenViewExistsAndImplementsINavigationAware_ThenViewIsQueriedForNavigationAndNewInstanceIsCreatedIfItRejectsIt()
        {
            // Arrange

            var serviceLocatorMock = new Mock <IServiceLocator>();

            var region = new Region();

            var viewMock = new Mock <INavigationAware>();

            viewMock
            .Setup(v => v.IsNavigationTarget(It.IsAny <NavigationContext>()))
            .Returns(false)
            .Verifiable();

            region.Add(viewMock.Object);

            var newView = new TestView();

            serviceLocatorMock
            .Setup(sl => sl.GetInstance <object>(viewMock.Object.GetType().Name))
            .Returns(newView);

            var navigationContext = new NavigationContext(null, new Uri(viewMock.Object.GetType().Name, UriKind.Relative));

            var navigationTargetHandler = new TestRegionNavigationContentLoader(serviceLocatorMock.Object);


            // Act

            var returnedView = navigationTargetHandler.LoadContent(region, navigationContext);


            // Assert

            Assert.AreSame(newView, returnedView);
            Assert.IsTrue(region.Views.Contains(newView));
            viewMock.VerifyAll();
        }
Exemple #8
0
        public void RemoveViewFiresViewRemovedEvent()
        {
            bool viewRemoved = false;

            IRegion region = new Region();
            object  model  = new object();

            region.Views.CollectionChanged += (sender, e) =>
            {
                if (e.Action == NotifyCollectionChangedAction.Remove)
                {
                    viewRemoved = true;
                }
            };

            region.Add(model);
            Assert.False(viewRemoved);

            region.Remove(model);

            Assert.True(viewRemoved);
        }
Exemple #9
0
        public void WhenParentViewGetsActivatedOrDeactivated_ThenSyncedChildViewWithAttributeInVMIsUpdated()
        {
            var scopedRegionManager = new RegionManager();
            var scopedRegion        = new Region {
                Name = "MyScopedRegion", RegionManager = scopedRegionManager
            };

            scopedRegionManager.Regions.Add(scopedRegion);
            var behaviorForScopedRegion = new RegionActiveAwareBehavior {
                Region = scopedRegion
            };

            behaviorForScopedRegion.Attach();
            var childActiveAwareView = new ActiveAwareFrameworkElement();

            childActiveAwareView.DataContext = new SyncedActiveAwareObjectViewModel();

            var region   = new MockPresentationRegion();
            var behavior = new RegionActiveAwareBehavior {
                Region = region
            };

            behavior.Attach();

            var view = new MockFrameworkElement();

            region.Add(view);
            RegionManager.SetRegionManager(view, scopedRegionManager);
            region.Activate(view);

            scopedRegion.Add(childActiveAwareView);
            scopedRegion.Activate(childActiveAwareView);

            Assert.IsTrue(childActiveAwareView.IsActive);

            region.Deactivate(view);

            Assert.IsFalse(childActiveAwareView.IsActive);
        }
Exemple #10
0
        public void WhenParentViewWithoutScopedRegionGetsActivatedOrDeactivated_ThenSyncedChildViewIsNotUpdated()
        {
            var commonRegionManager = new RegionManager();
            var nonScopedRegion     = new Region {
                Name = "MyRegion", RegionManager = commonRegionManager
            };

            commonRegionManager.Regions.Add(nonScopedRegion);
            var behaviorForScopedRegion = new RegionActiveAwareBehavior {
                Region = nonScopedRegion
            };

            behaviorForScopedRegion.Attach();
            var childActiveAwareView = new SyncedActiveAwareObject();

            var region = new MockPresentationRegion {
                RegionManager = commonRegionManager
            };
            var behavior = new RegionActiveAwareBehavior {
                Region = region
            };

            behavior.Attach();

            var view = new MockFrameworkElement();

            region.Add(view);
            RegionManager.SetRegionManager(view, commonRegionManager);
            region.Activate(view);

            nonScopedRegion.Add(childActiveAwareView);
            nonScopedRegion.Activate(childActiveAwareView);

            Assert.IsTrue(childActiveAwareView.IsActive);

            region.Deactivate(view);

            Assert.IsTrue(childActiveAwareView.IsActive);
        }
        public void ShouldFindCandidateViewInRegion()
        {
            IKernel kernel = new StandardKernel();

            kernel.Bind <object, MockView>().To <MockView>().Named("MockView");

            ConfigureMockServiceLocator(kernel);

            IRegion testRegion = new Region();

            var view = new MockView();

            testRegion.Add(view);
            testRegion.Deactivate(view);

            testRegion.RequestNavigate("MockView");

            Assert.IsTrue(testRegion.Views.Contains(view));
            Assert.IsTrue(testRegion.Views.Count() == 1);
            Assert.IsTrue(testRegion.ActiveViews.Count() == 1);
            Assert.IsTrue(testRegion.ActiveViews.Contains(view));
        }
Exemple #12
0
        public void ViewRemovedEventPassesTheViewRemovedInTheEventArgs()
        {
            object removedView = null;

            IRegion region = new Region();

            region.Views.CollectionChanged += (sender, e) =>
            {
                if (e.Action == NotifyCollectionChangedAction.Remove)
                {
                    removedView = e.OldItems[0];
                }
            };
            object model = new object();

            region.Add(model);
            Assert.Null(removedView);

            region.Remove(model);

            Assert.Same(model, removedView);
        }
Exemple #13
0
        public Generation RefillGeneration(Generation currentGeneration)
        {
            Generation nextGeneration = new Generation();
            nextGeneration.DimensionX = currentGeneration.DimensionX + currentGeneration.Increase * 2;
            nextGeneration.DimensionY = currentGeneration.DimensionY + currentGeneration.Increase * 2;

            for (int row = 0; row < nextGeneration.DimensionX; row++)
            {
                Region listRow = new Region();
                for (int column = 0; column < nextGeneration.DimensionY; column++)
                {
                    CheckFieldModification check = new CheckFieldModification(currentGeneration, row - currentGeneration.Increase, column - currentGeneration.Increase);
                    listRow.Add(check.CheckStatusForNeighbours());
                    check.Dispose();
                }
                nextGeneration.WriteRow(listRow);
            }
            if (_checkDimension.CheckFieldRows(nextGeneration, 0, 1) == -1) { currentGeneration.ClearContent(); return currentGeneration; }
            _dimentions = new Dimention(currentGeneration.DimensionX, currentGeneration.DimensionY);
            if (currentGeneration.Increase > 0) CheckDimentions(nextGeneration);
            return _makeChange.RewriteGeneration(currentGeneration, nextGeneration, _dimentions);
        }
        public void WhenNavigating_ViewIsActivated()
        {
            // Prepare
            object view    = new object();
            Uri    viewUri = new Uri(view.GetType().Name, UriKind.Relative);

            IRegion region = new Region();

            region.Add(view);

            string        regionName    = "RegionName";
            RegionManager regionManager = new RegionManager();

            regionManager.Regions.Add(regionName, region);

            var serviceLocatorMock = new Mock <IServiceLocator>();

            serviceLocatorMock.Setup(x => x.GetInstance <IRegionNavigationJournalEntry>()).Returns(new RegionNavigationJournalEntry());

            IServiceLocator serviceLocator = serviceLocatorMock.Object;
            RegionNavigationContentLoader contentLoader = new RegionNavigationContentLoader(serviceLocator);
            IRegionNavigationJournal      journal       = new Mock <IRegionNavigationJournal>().Object;

            RegionNavigationService target = new RegionNavigationService(serviceLocator, contentLoader, journal);

            target.Region = region;

            // Act
            bool isNavigationSuccessful = false;

            target.RequestNavigate(viewUri, nr => isNavigationSuccessful = nr.Result == true);

            // Verify
            Assert.IsTrue(isNavigationSuccessful);
            bool isViewActive = region.ActiveViews.Contains(view);

            Assert.IsTrue(isViewActive);
        }
Exemple #15
0
        public void UpdatePossibleValuesTest()
        {
            // arrange
            byte MAX_VALUE = 4;
            var  region    = new Region();

            Cell[] cells = new Cell[] {
                new Cell(0, 0, MAX_VALUE),
                new Cell(0, 1, MAX_VALUE),
                new Cell(0, 2, MAX_VALUE),
                new Cell(0, 3, MAX_VALUE, false, 1)
            };
            foreach (var cell in cells)
            {
                region.Add(cell);
            }
            var set_2_9 = new HashSet <byte>()
            {
                2, 3, 4
            };

            // act
            region.UpdatePossibleValues();


            // assert
            foreach (var cell in region.Cells)
            {
                if (cell.Value == 0)
                {
                    Assert.IsTrue(cell.PossibleValues.SetEquals(set_2_9));
                }
                else
                {
                    Assert.AreEqual(0, cell.PossibleValues.Count);
                }
            }
        }
        public void WhenTargetViewCreationThrowsWithAsyncConfirmation_ThenExceptionIsProvidedToNavigationCallback()
        {
            var containerMock = new Mock <IContainerExtension>();

            var targetException   = new Exception();
            var targetHandlerMock = new Mock <IRegionNavigationContentLoader>();

            targetHandlerMock
            .Setup(th => th.LoadContent(It.IsAny <IRegion>(), It.IsAny <NavigationContext>()))
            .Throws(targetException);

            var journalMock = new Mock <IRegionNavigationJournal>();

            Action <bool> navigationCallback = null;
            var           viewMock           = new Mock <IConfirmNavigationRequest>();

            viewMock
            .Setup(v => v.ConfirmNavigationRequest(It.IsAny <NavigationContext>(), It.IsAny <Action <bool> >()))
            .Callback <NavigationContext, Action <bool> >((nc, c) => { navigationCallback = c; });

            var region = new Region();

            region.Add(viewMock.Object);
            region.Activate(viewMock.Object);

            var target = new RegionNavigationService(containerMock.Object, targetHandlerMock.Object, journalMock.Object)
            {
                Region = region
            };

            NavigationResult result = null;

            target.RequestNavigate(new Uri("", UriKind.Relative), nr => result = nr);
            navigationCallback(true);

            Assert.NotNull(result);
            Assert.Same(targetException, result.Error);
        }
Exemple #17
0
        public void ShouldFindCandidateViewWithFriendlyNameInRegion()
        {
            IIocContainer container = new MunqContainerWrapper();

            container.RegisterTypeForNavigation <MockView>("SomeView");

            ConfigureMockServiceLocator(container);

            // We cannot access the MunqRegionNavigationContentLoader directly so we need to call its
            // GetCandidatesFromRegion method through a navigation request.
            IRegion testRegion = new Region();

            var view = new MockView();

            testRegion.Add(view);
            testRegion.Deactivate(view);

            testRegion.RequestNavigate("SomeView");

            testRegion.Views.ShouldContain(view);
            testRegion.ActiveViews.Count().ShouldBe(1);
            testRegion.ActiveViews.ShouldContain(view);
        }
Exemple #18
0
        public void ShouldFindCandidateViewInRegion()
        {
            _container.RegisterForNavigation <MockView>();
            //_container.RegisterType<object, MockView>("MockView");

            // We cannot access the UnityRegionNavigationContentLoader directly so we need to call its
            // GetCandidatesFromRegion method through a navigation request.
            IRegion testRegion = new Region();

            MockView view = new MockView();

            testRegion.Add(view);
            testRegion.Deactivate(view);

            Assert.True(((IContainerRegistry)_container).IsRegistered <object>("MockView"));

            testRegion.RequestNavigate("MockView");

            Assert.Contains(view, testRegion.Views);
            Assert.Single(testRegion.Views);
            Assert.Single(testRegion.ActiveViews);
            Assert.Contains(view, testRegion.ActiveViews);
        }
Exemple #19
0
        public void WhenClearChildViewsPropertyIsNotSet_ThenChildViewsRegionManagerIsNotCleared()
        {
            var regionManager = new MockRegionManager();

            var region = new Region();

            region.RegionManager = regionManager;

            var behavior = new ClearChildViewsRegionBehavior();

            behavior.Region = region;
            behavior.Attach();

            var childView = new MockFrameworkElement();

            region.Add(childView);

            Assert.AreEqual(regionManager, childView.GetValue(RegionManager.RegionManagerProperty));

            region.RegionManager = null;

            Assert.AreEqual(regionManager, childView.GetValue(RegionManager.RegionManagerProperty));
        }
        public void WhenMemberNeverActivatedThenIsNotRemovedOnAnothersDeactivation()
        {
            // Arrange
            var firstMockItem = new Mock <IRegionMemberLifetime>();

            firstMockItem.Setup(i => i.KeepAlive).Returns(false);

            var secondMockItem = new Mock <IRegionMemberLifetime>();

            secondMockItem.Setup(i => i.KeepAlive).Returns(false);

            Region.Add(firstMockItem.Object);  // Never activated

            Region.Add(secondMockItem.Object);
            Region.Activate(secondMockItem.Object);

            // Act
            Region.Deactivate(secondMockItem.Object);

            // Assert
            Assert.IsTrue(Region.Views.Contains(firstMockItem.Object));
            Assert.IsFalse(Region.Views.Contains(secondMockItem.Object));
        }
Exemple #21
0
        public void ShouldFindCandidateViewWithFriendlyNameInRegion()
        {
            IUnityContainer container = new UnityContainer();

            container.RegisterType <MockView>("SomeView");

            this.ConfigureMockServiceLocator(container);

            // We cannot access the UnityRegionNavigationContentLoader directly so we need to call its
            // GetCandidatesFromRegion method through a navigation request.
            IRegion testRegion = new Region();

            MockView view = new MockView();

            testRegion.Add(view);
            testRegion.Deactivate(view);

            testRegion.RequestNavigate("SomeView");

            Assert.IsTrue(testRegion.Views.Contains(view));
            Assert.IsTrue(testRegion.ActiveViews.Count() == 1);
            Assert.IsTrue(testRegion.ActiveViews.Contains(view));
        }
Exemple #22
0
        private void OnHostControlCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            if (_updating)
            {
                return;
            }

            try
            {
                _updating = true;
                if (e.Action == NotifyCollectionChangedAction.Add)
                {
                    foreach (var childItem in e.NewItems)
                    {
                        if (Region.Views.Contains(childItem))
                        {
                            continue;
                        }
                        Region.Add(childItem);
                    }
                }
                else if (e.Action == NotifyCollectionChangedAction.Remove)
                {
                    foreach (var childItem in e.OldItems)
                    {
                        if (Region.Views.Contains(childItem))
                        {
                            Region.Remove(childItem);
                        }
                    }
                }
            }
            finally
            {
                _updating = false;
            }
        }
Exemple #23
0
        public void WhenParentViewGetsActivatedOrDeactivated_ThenChildViewIsNotUpdated()
        {
            var scopedRegionManager = new RegionManager();
            var scopedRegion        = new Region {
                Name = "MyScopedRegion", RegionManager = scopedRegionManager
            };

            scopedRegionManager.Regions.Add(scopedRegion);
            var behaviorForScopedRegion = new RegionActiveAwareBehavior {
                Region = scopedRegion
            };

            behaviorForScopedRegion.Attach();
            var childActiveAwareView = new ActiveAwareFrameworkElement();

            var region   = new MockPresentationRegion();
            var behavior = new RegionActiveAwareBehavior {
                Region = region
            };

            behavior.Attach();

            var view = new MockFrameworkElement();

            region.Add(view);
            RegionManager.SetRegionManager(view, scopedRegionManager);
            region.Activate(view);

            scopedRegion.Add(childActiveAwareView);
            scopedRegion.Activate(childActiveAwareView);

            Assert.IsTrue(childActiveAwareView.IsActive);

            region.Deactivate(view);

            Assert.IsTrue(childActiveAwareView.IsActive);
        }
        public void WhenNavigatingAndCurrentlyActiveViewImplementsINavigateWithVeto_ThenNavigationRequestQueriesForVeto()
        {
            // Prepare
            var region = new Region();

            var viewMock = new Mock <IConfirmNavigationRequest>();

            viewMock
            .Setup(ina => ina.ConfirmNavigationRequest(It.IsAny <NavigationContext>(), It.IsAny <Action <bool> >()))
            .Verifiable();

            var view = viewMock.Object;

            region.Add(view);
            region.Activate(view);

            var navigationUri = new Uri(view.GetType().Name, UriKind.Relative);

            var containerMock = new Mock <IContainerExtension>();

            containerMock.Setup(x => x.Resolve(typeof(IRegionNavigationJournalEntry))).Returns(new RegionNavigationJournalEntry());

            IContainerExtension           container     = containerMock.Object;
            RegionNavigationContentLoader contentLoader = new Mock <RegionNavigationContentLoader>(container).Object;
            IRegionNavigationJournal      journal       = new Mock <IRegionNavigationJournal>().Object;

            RegionNavigationService target = new RegionNavigationService(container, contentLoader, journal)
            {
                Region = region
            };

            // Act
            target.RequestNavigate(navigationUri, nr => { });

            // Verify
            viewMock.VerifyAll();
        }
        public void WhenNavigatingAndDataContextImplementsINavigationAware_ThenNavigatedIsInvokesOnNavigation()
        {
            // Prepare
            var region = new Region();

            Mock <FrameworkElement> mockFrameworkElement            = new Mock <FrameworkElement>();
            Mock <INavigationAware> mockINavigationAwareDataContext = new Mock <INavigationAware>();

            mockINavigationAwareDataContext.Setup(ina => ina.IsNavigationTarget(It.IsAny <NavigationContext>())).Returns(true);
            mockFrameworkElement.Object.DataContext = mockINavigationAwareDataContext.Object;

            var view = mockFrameworkElement.Object;

            region.Add(view);

            var navigationUri = new Uri(view.GetType().Name, UriKind.Relative);

            var containerMock = new Mock <IContainerExtension>();

            containerMock.Setup(x => x.Resolve(typeof(IRegionNavigationJournalEntry))).Returns(new RegionNavigationJournalEntry());

            IContainerExtension           container     = containerMock.Object;
            RegionNavigationContentLoader contentLoader = new RegionNavigationContentLoader(container);
            IRegionNavigationJournal      journal       = new Mock <IRegionNavigationJournal>().Object;

            RegionNavigationService target = new RegionNavigationService(container, contentLoader, journal)
            {
                Region = region
            };

            // Act
            target.RequestNavigate(navigationUri, nr => { });

            // Verify
            mockINavigationAwareDataContext.Verify(v => v.OnNavigatedTo(It.Is <NavigationContext>(nc => nc.Uri == navigationUri)));
        }
        public void WhenRegionContainsMultipleMembers_OnlyRemovesThoseDeactivated()
        {
            // Arrange
            var firstMockItem = new Mock <IRegionMemberLifetime>();

            firstMockItem.Setup(i => i.KeepAlive).Returns(true);

            var secondMockItem = new Mock <IRegionMemberLifetime>();

            secondMockItem.Setup(i => i.KeepAlive).Returns(false);

            Region.Add(firstMockItem.Object);
            Region.Activate(firstMockItem.Object);

            Region.Add(secondMockItem.Object);
            Region.Activate(secondMockItem.Object);

            // Act
            Region.Deactivate(secondMockItem.Object);

            // Assert
            Assert.IsTrue(Region.Views.Contains(firstMockItem.Object));
            Assert.IsFalse(Region.Views.Contains(secondMockItem.Object));
        }
Exemple #27
0
        public void ShouldFindCandidateViewInRegion()
        {
            DependencyInjectionContainer container = new DependencyInjectionContainer();

            container.Configure(c => c.Export <object>().AsKeyed <MockView>("MockView"));

            this.ConfigureMockServiceLocator(container);

            // We cannot access the GraceRegionNavigationContentLoader directly so we need to call its
            // GetCandidatesFromRegion method through a navigation request.
            IRegion testRegion = new Region();

            MockView view = new MockView();

            testRegion.Add(view);
            testRegion.Deactivate(view);

            testRegion.RequestNavigate("MockView");

            Assert.IsTrue(testRegion.Views.Contains(view));
            Assert.IsTrue(testRegion.Views.Count() == 1);
            Assert.IsTrue(testRegion.ActiveViews.Count() == 1);
            Assert.IsTrue(testRegion.ActiveViews.Contains(view));
        }
        public void UpdateViewNameRemovesOldSequenceAndAddsNewOne()
        {
            var regionManager = A.Fake <IRegionManager>();
            var regionName    = "Region";
            var oldPath       = "Path";
            var newPath       = "Path2";
            var sequence      = new SequenceViewModel(new Sequence());
            var region        = new Region();
            var sequenceFile  = new SequenceFile(oldPath, sequence);

            region.Add(sequenceFile, oldPath);
            var regionCollection = A.Fake <IRegionCollection>();

            A.CallTo(() => regionCollection[regionName]).Returns(region);
            A.CallTo(() => regionManager.Regions).Returns(regionCollection);

            var service = new SequenceEditorService(regionManager);

            service.UpdateViewNameForSequence(regionName, newPath, sequenceFile);

            Assert.Single(region.Views);
            Assert.Equal(sequence, ((SequenceFile)region.GetView(newPath)).Sequence);
            Assert.Null(region.GetView(oldPath));
        }
Exemple #29
0
 private void AddCorner(int x, int y)
 {
     Region.Add(ConvertMouseClickToSetup(x, y));
 }
Exemple #30
0
 protected virtual void AddViewIntoRegion(object viewToAdd)
 {
     Region.Add(viewToAdd);
 }
Exemple #31
0
        public void AddNamedViewWithNullOrEmptyStringNameThrows()
        {
            IRegion region = new Region();

            region.Add(new object(), string.Empty);
        }
        public void WhenNavigating_ThenNavigationRequestQueriesForVetoOnAllActiveViewsIfAllSucceed()
        {
            // Prepare
            var region = new Region();

            var view1Mock = new Mock <IConfirmNavigationRequest>();

            view1Mock
            .Setup(ina => ina.ConfirmNavigationRequest(It.IsAny <NavigationContext>(), It.IsAny <Action <bool> >()))
            .Callback <NavigationContext, Action <bool> >((nc, c) => c(true))
            .Verifiable();

            var view1 = view1Mock.Object;

            region.Add(view1);
            region.Activate(view1);

            var view2Mock = new Mock <IConfirmNavigationRequest>();

            var view2 = view2Mock.Object;

            region.Add(view2);

            var view3Mock = new Mock <INavigationAware>();

            var view3 = view3Mock.Object;

            region.Add(view3);
            region.Activate(view3);

            var view4Mock = new Mock <IConfirmNavigationRequest>();

            view4Mock
            .Setup(ina => ina.ConfirmNavigationRequest(It.IsAny <NavigationContext>(), It.IsAny <Action <bool> >()))
            .Callback <NavigationContext, Action <bool> >((nc, c) => c(true))
            .Verifiable();

            var view4 = view4Mock.Object;

            region.Add(view4);
            region.Activate(view4);

            var navigationUri = new Uri(view1.GetType().Name, UriKind.Relative);

            var serviceLocatorMock = new Mock <IServiceLocator>();

            serviceLocatorMock.Setup(x => x.GetInstance <IRegionNavigationJournalEntry>()).Returns(new RegionNavigationJournalEntry());

            IServiceLocator serviceLocator = serviceLocatorMock.Object;
            RegionNavigationContentLoader contentLoader = new Mock <RegionNavigationContentLoader>(serviceLocator).Object;
            IRegionNavigationJournal      journal       = new Mock <IRegionNavigationJournal>().Object;

            RegionNavigationService target = new RegionNavigationService(serviceLocator, contentLoader, journal);

            target.Region = region;

            // Act
            target.RequestNavigate(navigationUri, nr => { });

            // Verify
            view1Mock.VerifyAll();
            view2Mock.Verify(ina => ina.ConfirmNavigationRequest(It.IsAny <NavigationContext>(), It.IsAny <Action <bool> >()), Times.Never());
            view3Mock.VerifyAll();
            view4Mock.VerifyAll();
        }
        public void WhenNavigationFailsBecauseDataContextForActiveViewRejectsIt_ThenNavigationFailedIsRaised()
        {
            // Prepare
            var region = new Region {
                Name = "RegionName"
            };

            var viewModel1Mock = new Mock <IConfirmNavigationRequest>();

            viewModel1Mock
            .Setup(ina => ina.ConfirmNavigationRequest(It.IsAny <NavigationContext>(), It.IsAny <Action <bool> >()))
            .Callback <NavigationContext, Action <bool> >((nc, c) => c(false))
            .Verifiable();


            var view1Mock = new Mock <FrameworkElement>();
            var view1     = view1Mock.Object;

            view1.DataContext = viewModel1Mock.Object;

            var view2 = new object();

            region.Add(view1);
            region.Add(view2);

            region.Activate(view1);

            var navigationUri = new Uri(view2.GetType().Name, UriKind.Relative);

            var serviceLocatorMock = new Mock <IServiceLocator>();

            serviceLocatorMock
            .Setup(x => x.GetInstance <IRegionNavigationJournalEntry>())
            .Returns(new RegionNavigationJournalEntry());

            var contentLoaderMock = new Mock <IRegionNavigationContentLoader>();

            contentLoaderMock
            .Setup(cl => cl.LoadContent(region, It.IsAny <NavigationContext>()))
            .Returns(view2);

            var serviceLocator = serviceLocatorMock.Object;
            var contentLoader  = contentLoaderMock.Object;
            var journal        = new Mock <IRegionNavigationJournal>().Object;

            var target = new RegionNavigationService(serviceLocator, contentLoader, journal);

            target.Region = region;

            RegionNavigationFailedEventArgs eventArgs = null;

            target.NavigationFailed += delegate(object sender, RegionNavigationFailedEventArgs e)
            {
                if (sender == target)
                {
                    eventArgs = e;
                }
            };

            // Act
            bool?isNavigationSuccessful = null;

            target.RequestNavigate(navigationUri, nr => isNavigationSuccessful = nr.Result);

            // Verify
            viewModel1Mock.VerifyAll();
            Assert.IsFalse(isNavigationSuccessful.Value);
            Assert.IsNotNull(eventArgs);
            Assert.IsNull(eventArgs.Error);
        }