public void ConnectControlSingleton_Refresh_SelectedServerIsConnected_StudioRepositoryLoadIsCalled() { 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.Refresh(selectedId); //------------Assert Results------------------------- Assert.IsNotNull(connectControlSingleton); Assert.AreEqual(ConnectionEnumerations.ConnectedState.Busy, actualConnectedState); Assert.IsFalse(actualDoCallback); Assert.AreEqual(selectedId, environmentId); studioResourceRepository.Verify(s => s.Load(It.IsAny<Guid>(), It.IsAny<IAsyncWorker>(), It.IsAny<Action<Guid>>()), Times.Once()); }