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; }
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))); }
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); }
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(); }
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); }
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); }
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)); }
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); }
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); }
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); }
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); }
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); }
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)); }
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)); }
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; } }
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)); }
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)); }
private void AddCorner(int x, int y) { Region.Add(ConvertMouseClickToSetup(x, y)); }
protected virtual void AddViewIntoRegion(object viewToAdd) { Region.Add(viewToAdd); }
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); }