public void WhenLoginStatusChangedEvent_PropertiesUpdated()
        {
            //Prepare
            Mock <IRegionManager> mockedRegionManager = new Mock <IRegionManager>();

            MockLoginStatusChangedEvent mockedLoginStatusChangedEvent = new MockLoginStatusChangedEvent();
            Mock <IEventAggregator>     mockedEventAggregator         = new Mock <IEventAggregator>();

            mockedEventAggregator.Setup(x => x.GetEvent <LoginStatusChangedEvent>()).Returns(mockedLoginStatusChangedEvent);

            Mock <IUserService> mockedUserService = new Mock <IUserService>();

            mockedUserService.Setup(x => x.IsLoggedIn).Returns(true);
            mockedUserService.Setup(x => x.CurrentUser).Returns(new UserInformation {
                Username = "******"
            });
            mockedUserService.Setup(x => x.OnlineStatus).Returns(OnlineStatuses.Online);

            //Act
            MenubarViewModel target = new MenubarViewModel(mockedRegionManager.Object,
                                                           mockedEventAggregator.Object, mockedUserService.Object);

            mockedLoginStatusChangedEvent.Publish(mockedUserService.Object);

            //Verify
            Assert.AreEqual("User", target.Username);
            Assert.AreEqual(OnlineStatuses.Online, target.OnlineStatus);
        }
        public void WhenLogoutCommandExecuted_UserLoggedOut()
        {
            //Prepare
            Mock <IRegionManager> mockRegionManager = new Mock <IRegionManager>();

            Mock <IUserService> mockUserService = new Mock <IUserService>();

            mockUserService.Setup(x => x.Logout()).Verifiable();
            mockUserService.Setup(x => x.IsLoggedIn).Returns(false);
            mockUserService.Setup(x => x.OnlineStatus).Returns(OnlineStatuses.Offline);

            MockLoginStatusChangedEvent mockedLoginStatusChangedEvent = new MockLoginStatusChangedEvent();
            Mock <IEventAggregator>     mockedEventAggregator         = new Mock <IEventAggregator>();

            mockedEventAggregator.Setup(x => x.GetEvent <LoginStatusChangedEvent>()).Returns(mockedLoginStatusChangedEvent);

            MenubarViewModel target = new MenubarViewModel(mockRegionManager.Object, mockedEventAggregator.Object, mockUserService.Object);

            //Act
            target.LogoutCommand.Execute(null);

            //Verify
            mockUserService.Verify(x => x.Logout(), Times.Once);
            Assert.AreEqual(OnlineStatuses.Offline, target.OnlineStatus);
        }
        public void WhenShowStoreViewCommandExecuted_NavigatesToStoreView()
        {
            //Prepare
            Mock <IRegion> mockMainRegion = new Mock <IRegion>();

            mockMainRegion.Setup(x => x.RequestNavigate(new Uri("StoreView", UriKind.Relative), It.IsAny <Action <NavigationResult> >())).Verifiable();

            Mock <IRegionManager> mockRegionManager = new Mock <IRegionManager>();

            mockRegionManager.Setup(x => x.Regions[RegionNames.MainBody]).Returns(mockMainRegion.Object);
            Mock <IUserService> mockUserService = new Mock <IUserService>();

            mockUserService.Setup(x => x.OnlineStatus).Returns(OnlineStatuses.Online);

            MockLoginStatusChangedEvent mockedLoginStatusChangedEvent = new MockLoginStatusChangedEvent();
            Mock <IEventAggregator>     mockedEventAggregator         = new Mock <IEventAggregator>();

            mockedEventAggregator.Setup(x => x.GetEvent <LoginStatusChangedEvent>()).Returns(mockedLoginStatusChangedEvent);

            MenubarViewModel target = new MenubarViewModel(mockRegionManager.Object, mockedEventAggregator.Object, mockUserService.Object);


            //Act
            target.ShowStoreViewCommand.Execute(null);

            //Verify
            mockMainRegion.Verify(x => x.RequestNavigate(new Uri("StoreView", UriKind.Relative), It.IsAny <Action <NavigationResult> >()), Times.Once());
        }
示例#4
0
        public ActionResult BarMenu()
        {
            var m1 = new MenubarViewModel()
            {
            };
            var ss = _iMenuEntityRepos.ToOrderList(m => m.ActionName).ToList();

            //todo 如果我去掉这个tolist,就会报错误。错误说我执行一个commond时未把一个reader关闭。说明我进行foreach循环的时候依然是从数据库中读取的


            return(PartialView("_BarMenu", ss));
        }
        public void WhenPropertyChanged_PropertyIsUpdated()
        {
            //Prepare
            Mock <IRegionManager> mockedRegionManager = new Mock <IRegionManager>();

            MockLoginStatusChangedEvent mockedLoginStatusChangedEvent = new MockLoginStatusChangedEvent();
            Mock <IEventAggregator>     mockedEventAggregator         = new Mock <IEventAggregator>();

            mockedEventAggregator.Setup(x => x.GetEvent <LoginStatusChangedEvent>()).Returns(mockedLoginStatusChangedEvent);

            Mock <IUserService> mockedUserService = new Mock <IUserService>();

            mockedUserService.Setup(x => x.OnlineStatus).Returns(OnlineStatuses.Offline);

            MenubarViewModel target = new MenubarViewModel(mockedRegionManager.Object,
                                                           mockedEventAggregator.Object, mockedUserService.Object);


            bool userNameChangedRaised = false;

            target.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
            {
                if (e.PropertyName == "Username")
                {
                    userNameChangedRaised = true;
                }
            };

            bool onlineStatusChangedRaised = false;

            target.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
            {
                if (e.PropertyName == "OnlineStatus")
                {
                    onlineStatusChangedRaised = true;
                }
            };

            target.Username     = "";
            target.OnlineStatus = OnlineStatuses.Online;

            //Verify
            Assert.IsTrue(userNameChangedRaised);
            Assert.IsTrue(onlineStatusChangedRaised);
        }
        public void WhenConstructed_IntializesValues()
        {
            //Prepare
            Mock <IRegionManager> mockedRegionManager = new Mock <IRegionManager>();

            MockLoginStatusChangedEvent mockedLoginStatusChangedEvent = new MockLoginStatusChangedEvent();
            Mock <IEventAggregator>     mockedEventAggregator         = new Mock <IEventAggregator>();

            mockedEventAggregator.Setup(x => x.GetEvent <LoginStatusChangedEvent>()).Returns(mockedLoginStatusChangedEvent);

            Mock <IUserService> mockedUserService = new Mock <IUserService>();

            mockedUserService.Setup(x => x.OnlineStatus).Returns(OnlineStatuses.Offline);

            //Act
            MenubarViewModel target = new MenubarViewModel(mockedRegionManager.Object,
                                                           mockedEventAggregator.Object, mockedUserService.Object);

            //Verify
            Assert.IsNull(target.Username);
            Assert.AreEqual(OnlineStatuses.Offline, target.OnlineStatus);
        }