ToggleConnection() public method

public ToggleConnection ( System.Guid environmentId ) : void
environmentId System.Guid
return void
        public void ConnectControlSingleton_ToggleConnectionOverload_SelectedServerIsConnected_StudioRepositoryDisconnectIsCalled()
        {
            var studioResourceRepository = new Mock<IStudioResourceRepository>();
            studioResourceRepository.Setup(s => s.Disconnect(It.IsAny<Guid>()))
                                    .Verifiable();
            var asyncWorker = new Mock<IAsyncWorker>();
            var serverProvider = new Mock<IEnvironmentModelProvider>();
            var environmentRepository = new Mock<IEnvironmentRepository>();
            List<IEnvironmentModel> environmentModels = new List<IEnvironmentModel>
                {
                    new TestEnvironmentModel(new Mock<IEventAggregator>().Object, Guid.NewGuid(), CreateConnection(false).Object, new Mock<IResourceRepository>().Object, false)
                };
            serverProvider.Setup(s => s.Load()).Returns(environmentModels);
            IConnectControlSingleton connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object);
            var selectedServer = connectControlSingleton.Servers[1];
            selectedServer.IsConnected = true;

            ConnectionEnumerations.ConnectedState actualConnectedState = ConnectionEnumerations.ConnectedState.Connected;
            bool actualDoCallback = false;
            Guid environmentId = Guid.Empty;
            var selectedId = selectedServer.EnvironmentModel.ID;
            connectControlSingleton.ConnectedStatusChanged += (sender, arg) =>
            {
                actualConnectedState = arg.ConnectedStatus;
                actualDoCallback = arg.DoCallback;
                environmentId = arg.EnvironmentId;
            };
            //------------Execute Test---------------------------
            connectControlSingleton.ToggleConnection(selectedId);
            //------------Assert Results-------------------------
            Assert.IsNotNull(connectControlSingleton);
            Assert.AreEqual(ConnectionEnumerations.ConnectedState.Disconnected, actualConnectedState);
            Assert.AreEqual(true, actualDoCallback);
            Assert.AreEqual(selectedId, environmentId);
            studioResourceRepository.Verify(s => s.Disconnect(It.IsAny<Guid>()), Times.Once());
        }
        public void ConnectControlSingleton_ToggleConnection_SelectedServerIndexIsOutofRange_StudioRepositoryLoadIsNotCalled()
        {
            var studioResourceRepository = new Mock<IStudioResourceRepository>();
            studioResourceRepository.Setup(s => s.Load(It.IsAny<Guid>(), It.IsAny<IAsyncWorker>(), It.IsAny<Action<Guid>>()))
                                    .Verifiable();
            var asyncWorker = new Mock<IAsyncWorker>();
            var serverProvider = new Mock<IEnvironmentModelProvider>();
            var environmentRepository = new Mock<IEnvironmentRepository>();
            List<IEnvironmentModel> environmentModels = new List<IEnvironmentModel>
                {
                    new TestEnvironmentModel(new Mock<IEventAggregator>().Object, Guid.NewGuid(), CreateConnection(false).Object, new Mock<IResourceRepository>().Object, false)
                };
            serverProvider.Setup(s => s.Load()).Returns(environmentModels);
            IConnectControlSingleton connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object);
            var eventWasRaised = false;

            connectControlSingleton.ConnectedStatusChanged += (sender, arg) =>
            {
                eventWasRaised = true;
            };
            //------------Execute Test---------------------------
            connectControlSingleton.ToggleConnection(99);
            connectControlSingleton.ToggleConnection(-1);
            //------------Assert Results-------------------------
            Assert.IsNotNull(connectControlSingleton);

            Assert.IsFalse(eventWasRaised);
            studioResourceRepository.Verify(s => s.Load(It.IsAny<Guid>(), It.IsAny<IAsyncWorker>(), It.IsAny<Action<Guid>>()), Times.Never());
        }