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()); }