public void ConnectControlViewModel_OnServerOnNetworkStateChanged_GivenLocalhostAndIsNotConnecting_ResultServerDisconnected()
        {
            //------------Setup for test--------------------------
            _serverMock.Setup(server => server.IsConnected).Returns(false);
            var args = new Mock <INetworkStateChangedEventArgs>();

            args.Setup(eventArgs => eventArgs.State).Returns(ConnectionNetworkState.Disconnected);
            var localhost = new Mock <IServer>();

            localhost.Setup(server => server.IsConnected).Returns(false);
            localhost.Setup(server => server.DisplayName).Returns("localhost (Connected)");
            var connectControlViewModel = new ConnectControlViewModel(_serverMock.Object, new EventAggregator());
            //------------Execute Test---------------------------
            var popupController = new Mock <IPopupController>();

            popupController.Setup(
                controller =>
                controller.Show(It.IsAny <string>(), It.IsAny <string>(), MessageBoxButton.OK, MessageBoxImage.Warning,
                                It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <bool>(),
                                It.IsAny <bool>(), It.IsAny <bool>()));
            var privateObject = new PrivateObject(connectControlViewModel);

            privateObject.SetProperty("IsConnecting", false);
            privateObject.Invoke("OnServerOnNetworkStateChanged", args.Object, _serverMock.Object);
            //------------Assert Results-------------------------
            Assert.IsFalse(connectControlViewModel.IsConnected);
        }
        public void TestConnectControlViewModelEventAggregatorNull()
        {
            //act
            var connectControlViewModel = new ConnectControlViewModel(_serverMock.Object, null);

            Assert.IsNotNull(connectControlViewModel);
        }
        public void TestConnectControlViewModelServerNull()
        {
            //act
            var connectControlViewModel = new ConnectControlViewModel(null, _eventAggregatorMock.Object);

            Assert.IsNotNull(connectControlViewModel);
        }
        public void TestInitialize()
        {
            _serverMock           = new Mock <IServer>();
            _serverIIMock         = new Mock <IServer>();
            _eventAggregatorMock  = new Mock <IEventAggregator>();
            _updateRepositoryMock = new Mock <IStudioUpdateManager>();
            _updateRepositoryMock.SetupProperty(manager => manager.ServerSaved);
            _serverMock.SetupGet(it => it.UpdateRepository).Returns(_updateRepositoryMock.Object);
            _serverMock.SetupGet(it => it.DisplayName).Returns("some text");
            _serverEnvironmentId = Guid.NewGuid();
            _serverMock.SetupGet(it => it.EnvironmentID).Returns(_serverEnvironmentId);

            var mockEnvironmentConnection = SetupMockConnection();

            _serverMock.SetupGet(it => it.Connection).Returns(mockEnvironmentConnection.Object);

            _changedProperties = new List <string>();
            var serverRepo = new Mock <IServerRepository>();

            serverRepo.Setup(repository => repository.ActiveServer).Returns(_serverMock.Object);
            serverRepo.Setup(repository => repository.Source).Returns(_serverMock.Object);
            serverRepo.Setup(repository => repository.All()).Returns(new List <IServer>()
            {
                _serverMock.Object
            });
            serverRepo.Setup(repository => repository.Get(It.IsAny <Guid>())).Returns(_serverMock.Object);
            CustomContainer.Register(serverRepo.Object);

            _target = new ConnectControlViewModel(_serverMock.Object, _eventAggregatorMock.Object)
            {
                ShouldUpdateActiveEnvironment = true
            };
            _target.ShouldUpdateActiveEnvironment = true;
            _target.PropertyChanged += Target_PropertyChanged;
        }
        public void UpdateRepositoryOnServerSaved_GivenLocalhost_Result()
        {
            //------------Setup for test--------------------------
            var store = new Mock <IServer>();

            store.Setup(server => server.DisplayName).Returns("WarewolfStore");
            var intergration = new Mock <IServer>();

            intergration.Setup(server => server.DisplayName).Returns("RemoteIntergration");
            intergration.Setup(server => server.IsConnected).Returns(true);
            var intergrationId = Guid.NewGuid();

            intergration.Setup(server => server.EnvironmentID).Returns(intergrationId);
            var servers = new List <IServer>
            {
                intergration.Object,
                store.Object
            };
            var connectControlViewModel = new ConnectControlViewModel(_serverMock.Object, new EventAggregator());
            //------------Execute Test---------------------------
            var privateObject = new PrivateObject(connectControlViewModel);

            privateObject.SetProperty("IsConnecting", false);
            privateObject.Invoke("UpdateRepositoryOnServerSaved", intergrationId, false);
            //------------Assert Results-------------------------
            Assert.IsNotNull(connectControlViewModel.SelectedConnection);
        }
Beispiel #6
0
        public SearchViewModel(IShellViewModel shellViewModel, IEventAggregator aggregator)
            : base(shellViewModel, aggregator, false)
        {
            _shellViewModel = shellViewModel;
            PopupController = shellViewModel.PopupProvider;

            ConnectControlViewModel = new ConnectControlViewModel(shellViewModel.LocalhostServer, aggregator, shellViewModel.ExplorerViewModel.ConnectControlViewModel.Servers);
            ConnectControlViewModel.ServerConnected            += async(sender, server) => { await ServerConnectedAsync(sender, server).ConfigureAwait(false); };
            ConnectControlViewModel.ServerDisconnected         += ServerDisconnected;
            ConnectControlViewModel.SelectedEnvironmentChanged += UpdateServerCompareChanged;
            SelectedEnvironment = _environments.FirstOrDefault();
            RefreshCommand      = new DelegateCommand(async(o) => await RefreshEnvironment(SelectedEnvironment.ResourceId));
            SearchInputCommand  = new DelegateCommand((o) => SearchWarewolf());
            OpenResourceCommand = new DelegateCommand((searchObject) =>
            {
                var searchResult = searchObject as ISearchResult;
                OpenResource(searchResult);
            });
            CanShowResults = true;
            SearchResults  = new ObservableCollection <ISearchResult>();
            Search         = new Common.Search.Search();
            SelectedEnvironment?.Server?.ResourceRepository?.Load(false);
            IsSearching = false;
            DisplayName = $"Search";
            UpdateHelpDescriptor(Warewolf.Studio.Resources.Languages.HelpText.MenuSearchHelp);
        }
        public void ConnectControlViewModel_LoadServers_GivenSelectedServer_ResultIsSelectedServer()
        {
            //------------Setup for test--------------------------
            _serverMock.Setup(server => server.IsConnected).Returns(true);
            var store = new Mock <IServer>();

            store.Setup(server => server.DisplayName).Returns("WarewolfStore");

            var mockEnvironmentConnection = SetupMockConnection();

            var intergration = new Mock <IServer>();

            intergration.Setup(server => server.DisplayName).Returns("RemoteIntergration");
            var intergrationId = Guid.NewGuid();

            intergration.Setup(server => server.EnvironmentID).Returns(intergrationId);
            intergration.SetupGet(it => it.Connection).Returns(mockEnvironmentConnection.Object);


            var connectControlViewModel = new ConnectControlViewModel(_serverMock.Object, new EventAggregator());
            //------------Execute Test---------------------------
            var privateObject = new PrivateObject(connectControlViewModel);

            privateObject.SetField("_selectedId", intergrationId);
            connectControlViewModel.LoadServers();
            connectControlViewModel.SelectedConnection = intergration.Object;
            //------------Assert Results-------------------------
            Assert.AreEqual(intergrationId, connectControlViewModel.SelectedConnection.EnvironmentID);
        }
        public void TestConnectControlViewModelExpectedProperties()
        {
            //act
            var connectControlViewModel = new ConnectControlViewModel(null, _eventAggregatorMock.Object);

            Assert.IsNotNull(connectControlViewModel);
            Assert.IsTrue(connectControlViewModel.CanEditServer);
            Assert.IsTrue(connectControlViewModel.CanCreateServer);
        }
        public void ConnectControlViewModel_TestConnectSuccessful()
        {
            //arrange
            var mockServer                = new Mock <IServer>();
            var mockShellViewModel        = new Mock <IShellViewModel>();
            var mockEventAggregator       = new Mock <IEventAggregator>();
            var mockPopupController       = new Mock <IPopupController>();
            var mockEnvironmentConnection = new Mock <IEnvironmentConnection>();

            var serverEnvironmentId   = Guid.NewGuid();
            var serverConnectedRaised = false;
            var rand = new Random();

            mockEnvironmentConnection.Setup(o => o.IsConnected).Returns(true);
            mockEnvironmentConnection.Setup(o => o.AppServerUri).Returns((new Uri($"http://127.0.0.{rand.Next(1, 100)}:{rand.Next(1, 100)}/dsf")));

            mockServer.Setup(it => it.ConnectAsync()).ReturnsAsync(true);
            mockServer.SetupGet(it => it.EnvironmentID).Returns(serverEnvironmentId);
            mockServer.SetupGet(it => it.DisplayName).Returns("display name");
            mockServer.SetupGet(it => it.IsConnected).Returns(true);
            mockServer.SetupGet(it => it.Connection).Returns(mockEnvironmentConnection.Object);
            mockServer.SetupGet(o => o.Connection.AppServerUri).Returns((new Uri($"http://127.0.0.{rand.Next(1, 100)}:{rand.Next(1, 100)}/dsf")));

            var connectControlViewModel = new ConnectControlViewModel(mockServer.Object, mockEventAggregator.Object)
            {
                ShouldUpdateActiveEnvironment = true
            };

            connectControlViewModel.ServerConnected = (sender, e) =>
            {
                serverConnectedRaised = sender == connectControlViewModel && Equals(e, mockServer.Object);
            };

            CustomContainer.Register(mockShellViewModel.Object);

            mockPopupController.Setup(it => it.ShowConnectionTimeoutConfirmation("DisplayName"))
            .Returns <string>(
                dispName =>
            {
                mockServer.Setup(it => it.ConnectAsync()).ReturnsAsync(true);
                return(MessageBoxResult.Yes);
            });

            CustomContainer.Register(mockPopupController.Object);
            //act
            connectControlViewModel.SelectedConnection = new Server(serverEnvironmentId, mockEnvironmentConnection.Object);
            var result = connectControlViewModel.TryConnectAsync(mockServer.Object);

            //assert
            Assert.IsTrue(result.Result);
            Assert.IsTrue(serverConnectedRaised);
            mockServer.Verify(it => it.ConnectAsync());
            mockShellViewModel.Verify(it => it.SetActiveServer(mockServer.Object.EnvironmentID));
        }
        public void ConnectControlViewModel_ConnectOrDisconnect_GivenServerNull()
        {
            //------------Setup for test--------------------------
            var connectControlViewModel = new ConnectControlViewModel(_serverMock.Object, new EventAggregator());

            connectControlViewModel.SelectedConnection = null;
            //------------Execute Test---------------------------
            var privateObject = new PrivateObject(_target);

            privateObject.SetField("_selectedConnection", value: null);
            privateObject.Invoke("ConnectOrDisconnectAsync");
            //------------Assert Results-------------------------
            Assert.IsFalse(_target.IsConnecting);
        }
        public void ConnectControlViewModel_CheckVersionConflict_ThrowsException()
        {
            _serverMock.Setup(server1 => server1.IsConnected).Returns(true);
            _serverMock.Setup(server1 => server1.GetServerVersion()).Throws(new Exception());
            var popupController = new Mock <IPopupController>();

            popupController.Setup(controller => controller.ShowConnectServerVersionConflict(It.IsAny <string>(), It.IsAny <string>()));
            var connectControlViewModel = new ConnectControlViewModel(_serverMock.Object, new EventAggregator(), popupController.Object);
            //------------Execute Test---------------------------
            var privateObject = new PrivateObject(connectControlViewModel);

            privateObject.Invoke("CheckVersionConflictAsync");
            //------------Assert Results-------------------------
        }
        public async Task Connect_GivenShowConnectionTimeoutConfirmation_MessageBox_Yes()
        {
            //------------Setup for test--------------------------
            var popupController = new Mock <IPopupController>();

            popupController.SetupSequence(controller => controller.ShowConnectionTimeoutConfirmation(_serverMock.Object.DisplayName))
            .Returns(MessageBoxResult.Yes)
            .Returns(MessageBoxResult.None);
            var connectControlViewModel = new ConnectControlViewModel(_serverMock.Object, new EventAggregator(), popupController.Object);
            //------------Execute Test---------------------------
            var connect = await connectControlViewModel.TryConnectAsync(_serverMock.Object);

            //------------Assert Results-------------------------
            Assert.IsNotNull(connect);
        }
        public void ConnectControlViewModel_CheckVersionConflict_GivenNoVersionConflicts()
        {
            //------------Setup for test--------------------------
            _serverMock.Setup(server1 => server1.IsConnected).Returns(true);
            _serverMock.Setup(server1 => server1.GetServerVersion()).Returns("0.0.0.5");
            var popupController = new Mock <IPopupController>();

            popupController.Setup(controller => controller.ShowConnectServerVersionConflict(It.IsAny <string>(), It.IsAny <string>()));
            var connectControlViewModel = new ConnectControlViewModel(_serverMock.Object, new EventAggregator(), popupController.Object);
            //------------Execute Test---------------------------
            var privateObject = new PrivateObject(connectControlViewModel);

            privateObject.Invoke("CheckVersionConflictAsync");
            //------------Assert Results-------------------------
            popupController.Verify(controller => controller.ShowConnectServerVersionConflict(It.IsAny <string>(), It.IsAny <string>()), Times.AtLeastOnce);
        }
 public void TestInitialize()
 {
     _serverMock           = new Mock <IServer>();
     _serverIIMock         = new Mock <IServer>();
     _eventAggregatorMock  = new Mock <IEventAggregator>();
     _updateRepositoryMock = new Mock <IStudioUpdateManager>();
     _updateRepositoryMock.SetupProperty(manager => manager.ServerSaved);
     _serverMock.SetupGet(it => it.UpdateRepository).Returns(_updateRepositoryMock.Object);
     _serverMock.SetupGet(it => it.DisplayName).Returns("some text");
     _serverEnvironmentId = Guid.NewGuid();
     _serverMock.SetupGet(it => it.EnvironmentID).Returns(_serverEnvironmentId);
     //_serverMock.Setup(it => it.GetAllServerConnections()).Returns(new List<IServer> {_serverIIMock.Object});
     _changedProperties = new List <string>();
     _target            = new ConnectControlViewModel(_serverMock.Object, _eventAggregatorMock.Object)
     {
         ShouldUpdateActiveEnvironment = true
     };
     _target.ShouldUpdateActiveEnvironment = true;
     _target.PropertyChanged += _target_PropertyChanged;
 }
        public void ConnectControlViewModel_UpdateRepositoryOnServerSaved_GivenEmptyGuid_Result()
        {
            //------------Setup for test--------------------------
            _serverMock.Setup(server => server.IsConnected).Returns(true);
            var args = new Mock <INetworkStateChangedEventArgs>();

            args.Setup(eventArgs => eventArgs.State).Returns(ConnectionNetworkState.Disconnected);
            var localhost = new Mock <IServer>();

            localhost.Setup(server => server.IsConnected).Returns(false);
            localhost.Setup(server => server.EnvironmentID).Returns(new Guid());
            localhost.Setup(server => server.DisplayName).Returns("localhost (Connected)");
            var connectControlViewModel = new ConnectControlViewModel(_serverMock.Object, new EventAggregator());
            //------------Execute Test---------------------------
            var privateObject = new PrivateObject(connectControlViewModel);

            privateObject.SetProperty("IsConnecting", false);
            privateObject.Invoke("UpdateRepositoryOnServerSaved", Guid.Empty, false);
            //------------Assert Results-------------------------
        }
        public void ConnectControlViewModel_UpdateRepositoryOnServerSaved()
        {
            var serverGuid        = Guid.NewGuid();
            var uri               = new Uri("http://bravo.com/");
            var serverDisplayName = "johnnyBravoServer";

            var mockShellViewModel        = new Mock <IShellViewModel>();
            var mockExplorerRepository    = new Mock <IExplorerRepository>();
            var mockEnvironmentConnection = new Mock <IEnvironmentConnection>();

            mockEnvironmentConnection.Setup(a => a.AppServerUri).Returns(uri);
            mockEnvironmentConnection.Setup(a => a.UserName).Returns("johnny");
            mockEnvironmentConnection.Setup(a => a.Password).Returns("bravo");
            mockEnvironmentConnection.Setup(a => a.WebServerUri).Returns(uri);
            mockEnvironmentConnection.Setup(a => a.ID).Returns(serverGuid);
            mockEnvironmentConnection.Setup(a => a.IsConnected).Returns(false);
            mockEnvironmentConnection.SetupProperty(a => a.DisplayName);
            mockEnvironmentConnection.Object.DisplayName = serverDisplayName;

            mockExplorerRepository.Setup(
                repository => repository.CreateFolder(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Guid>()));
            mockExplorerRepository.Setup(
                repository => repository.Rename(It.IsAny <IExplorerItemViewModel>(), It.IsAny <string>())).Returns(true);

            var server = new ServerForTesting(mockExplorerRepository);

            server.EnvironmentID = serverGuid;
            server.ResourceName  = "mr_J_bravo";
            server.Connection    = mockEnvironmentConnection.Object;
            mockShellViewModel.Setup(a => a.ActiveServer).Returns(server);
            mockShellViewModel.Setup(model => model.LocalhostServer).Returns(server);

            CustomContainer.Register <IServer>(server);
            CustomContainer.Register(mockShellViewModel.Object);

            var environmentModel = new Mock <IServer>();

            environmentModel.SetupGet(a => a.Connection).Returns(mockEnvironmentConnection.Object);
            environmentModel.SetupGet(a => a.IsConnected).Returns(true);

            var e1   = new Server(serverGuid, mockEnvironmentConnection.Object);
            var repo = new TestServerRespository(environmentModel.Object, e1)
            {
                ActiveServer = e1
            };
            var environmentRepository = new ServerRepository(repo);

            Assert.IsNotNull(environmentRepository);

            var passed = false;

            mockShellViewModel.Setup(a => a.OpenResource(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <IServer>()))
            .Callback((Guid id1, Guid id2, IServer a) =>
            {
                passed = a.EnvironmentID == serverGuid;
            });
            //------------Setup for test--------------------------
            var connectControlViewModel = new ConnectControlViewModel(server, new EventAggregator());
            var privateObject           = new PrivateObject(connectControlViewModel);

            privateObject.SetProperty("IsConnecting", false);
            privateObject.Invoke("UpdateRepositoryOnServerSaved", serverGuid, false);
            //------------Execute Test---------------------------

            //------------Assert Results-------------------------
            Assert.AreEqual("johnnyBravoServer", mockEnvironmentConnection.Object.DisplayName);
        }
 public void UpdateActiveEnvironment(IEnvironmentModel environmentModel, bool isSetFromConnectControl)
 {
     ConnectControlViewModel.UpdateActiveEnvironment(environmentModel, isSetFromConnectControl);
 }
        public void ConnectControlViewModelEditServerServerIDMatchIsTrue()
        {
            var serverGuid = Guid.NewGuid();
            Uri uri        = new Uri("http://bravo.com/");

            var mockShellViewModel        = new Mock <IShellViewModel>();
            var mockExplorerRepository    = new Mock <IExplorerRepository>();
            var mockEnvironmentConnection = new Mock <IEnvironmentConnection>();

            mockEnvironmentConnection.Setup(a => a.AppServerUri).Returns(uri);
            mockEnvironmentConnection.Setup(a => a.UserName).Returns("johnny");
            mockEnvironmentConnection.Setup(a => a.Password).Returns("bravo");
            mockEnvironmentConnection.Setup(a => a.WebServerUri).Returns(uri);
            mockEnvironmentConnection.Setup(a => a.ID).Returns(serverGuid);

            mockExplorerRepository.Setup(
                repository => repository.CreateFolder(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Guid>()));
            mockExplorerRepository.Setup(
                repository => repository.Rename(It.IsAny <IExplorerItemViewModel>(), It.IsAny <string>())).Returns(true);

            var server  = new ServerForTesting(mockExplorerRepository);
            var server2 = new Server(serverGuid, mockEnvironmentConnection.Object);

            server.EnvironmentID = serverGuid;
            server.ResourceName  = "mr_J_bravo";
            server.Connection    = mockEnvironmentConnection.Object;
            mockShellViewModel.Setup(a => a.ActiveServer).Returns(server);
            mockShellViewModel.Setup(model => model.LocalhostServer).Returns(server);

            CustomContainer.Register <IServer>(server);
            CustomContainer.Register(mockShellViewModel.Object);

            var environmentModel = new Mock <IServer>();

            environmentModel.SetupGet(a => a.Connection).Returns(mockEnvironmentConnection.Object);
            environmentModel.SetupGet(a => a.IsConnected).Returns(true);

            var e1   = new Server(serverGuid, mockEnvironmentConnection.Object);
            var repo = new TestServerRespository(environmentModel.Object, e1)
            {
                ActiveServer = e1
            };
            var environmentRepository = new ServerRepository(repo);

            Assert.IsNotNull(environmentRepository);

            bool passed = false;

            mockShellViewModel.Setup(a => a.OpenResource(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <IServer>()))
            .Callback((Guid id1, Guid id2, IServer a) =>
            {
                passed = a.EnvironmentID == serverGuid;
            });
            //------------Setup for test--------------------------
            var           connectControlViewModel = new ConnectControlViewModel(server, new EventAggregator());
            PrivateObject p = new PrivateObject(connectControlViewModel);

            p.SetField("_selectedConnection", server2);
            //------------Execute Test---------------------------
            connectControlViewModel.Edit();

            //------------Assert Results-------------------------
            Assert.IsTrue(passed);
        }