public void ConnectControlSingleton_Constructor_ServerProviderReturnsNoEnvironment_WillHaveAtLeastOneEnvironmentLoaded() { var studioResourceRepository = new Mock<IStudioResourceRepository>(); var asyncWorker = new Mock<IAsyncWorker>(); var serverProvider = new Mock<IEnvironmentModelProvider>(); var environmentRepository = new Mock<IEnvironmentRepository>(); List<IEnvironmentModel> environmentModels = new List<IEnvironmentModel>(); serverProvider.Setup(s => s.Load()).Returns(environmentModels); //------------Execute Test--------------------------- IConnectControlSingleton connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object); //------------Assert Results------------------------- Assert.IsNotNull(connectControlSingleton); Assert.IsNotNull(connectControlSingleton.Servers); Assert.AreEqual(1, connectControlSingleton.Servers.Count); Assert.AreEqual(ConnectControlSingleton.NewServerText, connectControlSingleton.Servers[0].DisplayName); }
public void ConnectControlSingleton_SetConnectionState_WhenThereIsASubscriber_RaisesAnEvent() { var studioResourceRepository = new Mock<IStudioResourceRepository>(); var asyncWorker = new Mock<IAsyncWorker>(); var serverProvider = new Mock<IEnvironmentModelProvider>(); 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); var environmentRepository = new Mock<IEnvironmentRepository>(); var expectedServerId = Guid.NewGuid(); var actualId = Guid.Empty; const ConnectionEnumerations.ConnectedState expectedConnectedState = ConnectionEnumerations.ConnectedState.Busy; ConnectionEnumerations.ConnectedState actualConnectedState = ConnectionEnumerations.ConnectedState.Disconnected; IConnectControlSingleton connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object); connectControlSingleton.ConnectedStatusChanged += (s, a) => { actualId = a.EnvironmentId; actualConnectedState = a.ConnectedStatus; }; //------------Execute Test--------------------------- connectControlSingleton.SetConnectionState(expectedServerId, expectedConnectedState); //------------Assert Results------------------------- Assert.AreEqual(expectedServerId, actualId); Assert.AreEqual(expectedConnectedState, actualConnectedState); }
public void ConnectControlSingleton_ResourcesLoadedHandler_ServerIdIsNotFound_RaisesConnectedEventWithDisconnectedState() { var studioResourceRepository = new Mock<IStudioResourceRepository>(); var asyncWorker = new Mock<IAsyncWorker>(); var serverProvider = new Mock<IEnvironmentModelProvider>(); var environmentRepository = new Mock<IEnvironmentRepository>(); var serverId = Guid.NewGuid(); List<IEnvironmentModel> environmentModels = new List<IEnvironmentModel> { new TestEnvironmentModel(new Mock<IEventAggregator>().Object, serverId, CreateConnection(false).Object, new Mock<IResourceRepository>().Object, false) }; serverProvider.Setup(s => s.Load()).Returns(environmentModels); var connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object); ConnectionEnumerations.ConnectedState actualConnectedState = ConnectionEnumerations.ConnectedState.Busy; connectControlSingleton.ConnectedStatusChanged += (sender, arg) => { actualConnectedState = arg.ConnectedStatus; }; //------------Execute Test--------------------------- connectControlSingleton.ResourcesLoadedHandler(Guid.NewGuid()); //------------Assert Results------------------------- Assert.AreEqual(ConnectionEnumerations.ConnectedState.Disconnected, actualConnectedState); }
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()); }
public void ConnectControlSingleton_Remove_SelectedServerIsConnected_StudioRepositoryDisconnectIsCalled() { var studioResourceRepository = new Mock<IStudioResourceRepository>(); studioResourceRepository.Setup(s => s.Disconnect(It.IsAny<Guid>())) .Verifiable(); studioResourceRepository.Setup(s => s.RemoveEnvironment(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; Guid environmentId = Guid.NewGuid(); var eventRaised = false; var selectedId = selectedServer.EnvironmentModel.ID; connectControlSingleton.ConnectedServerChanged += (sender, arg) => { environmentId = arg.EnvironmentId; eventRaised = true; }; //------------Execute Test--------------------------- connectControlSingleton.Remove(selectedId); //------------Assert Results------------------------- Assert.IsNotNull(connectControlSingleton); Assert.AreEqual(Guid.Empty, environmentId); Assert.IsTrue(eventRaised); studioResourceRepository.Verify(s => s.Disconnect(It.IsAny<Guid>()), Times.Once()); studioResourceRepository.Verify(s => s.RemoveEnvironment(It.IsAny<Guid>()), Times.Once()); }
public void ConnectControlSingleton_EditConnection_ServerUriIsChangedWhenItsConnected_StudioResourceRepositoryDisconnectIsCalled() { 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 server1 = Guid.NewGuid(); var server2 = Guid.NewGuid(); var environmentModels = new List<IEnvironmentModel> { new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server1, CreateConnection(true).Object, new Mock<IResourceRepository>().Object, false), new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server2, CreateConnection(false).Object, new Mock<IResourceRepository>().Object, false) }; var environmentRepository = new Mock<IEnvironmentRepository>(); var environments = new List<IEnvironmentModel> { new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server1, CreateConnection(false, new Uri("http://azureprivatecloud/machine1:3142")).Object, new Mock<IResourceRepository>().Object, false), new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server2, CreateConnection(false, new Uri("http://azureprivatecloud/machine2:3142")).Object, new Mock<IResourceRepository>().Object, false) }; environmentRepository.Setup(e => e.All()).Returns(environments); serverProvider.Setup(s => s.Load()).Returns(environmentModels); IConnectControlSingleton connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object); var selectedIndex = -1; //------------Execute Test--------------------------- connectControlSingleton.EditConnection(1, index => { selectedIndex = index; }); //------------Assert Results------------------------- Assert.IsNotNull(connectControlSingleton); Assert.AreEqual(1, selectedIndex); studioResourceRepository.Verify(s => s.Disconnect(It.IsAny<Guid>()), Times.Once()); }
public void ConnectControlSingleton_EditConnection_SelectedServerIndexIsOutOfRange_StudioResourceRepositoryDisconnectIsNotCalled() { 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>(); var environmentModels = new List<IEnvironmentModel> { new TestEnvironmentModel(new Mock<IEventAggregator>().Object, Guid.NewGuid(), CreateConnection(true).Object, new Mock<IResourceRepository>().Object, false), 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 wasCallbackInvoked = false; //------------Execute Test--------------------------- connectControlSingleton.EditConnection(99, index => { wasCallbackInvoked = true; }); connectControlSingleton.EditConnection(-1, index => { wasCallbackInvoked = true; }); //------------Assert Results------------------------- Assert.IsNotNull(connectControlSingleton); Assert.IsFalse(wasCallbackInvoked); studioResourceRepository.Verify(s => s.Disconnect(It.IsAny<Guid>()), Times.Never()); }
public void ConnectControlSingleton_EditConnection_AuthNotChangedOnTheDialog_StudioResourceRepositoryLoadIsNotCalled() { 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 server1 = Guid.NewGuid(); var server2 = Guid.NewGuid(); var environmentModels = new List<IEnvironmentModel> { new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server1, CreateConnection(false,new Uri("http://localhost:3142/dsf"),AuthenticationType.Public).Object, new Mock<IResourceRepository>().Object, false), new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server2, CreateConnection(false,new Uri("http://localhost:3142/dsf"),AuthenticationType.Public).Object, new Mock<IResourceRepository>().Object, false) }; var environmentRepository = new Mock<IEnvironmentRepository>(); var environments = new List<IEnvironmentModel> { new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server1, CreateConnection(false, new Uri("http://localhost:3142/dsf"),AuthenticationType.Public).Object, new Mock<IResourceRepository>().Object, false), new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server2, CreateConnection(false, new Uri("http://localhost:3142/dsf"),AuthenticationType.Public).Object, new Mock<IResourceRepository>().Object, false) }; environmentRepository.Setup(e => e.All()).Returns(environments); serverProvider.Setup(s => s.Load()).Returns(environmentModels); IConnectControlSingleton connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object); connectControlSingleton.ConnectedStatusChanged += (sender, arg) => { }; //------------Execute Test--------------------------- connectControlSingleton.EditConnection(1, index => { }); //------------Assert Results------------------------- studioResourceRepository.Verify(s => s.Load(It.IsAny<Guid>(), It.IsAny<IAsyncWorker>(), It.IsAny<Action<Guid>>()), Times.Never()); }
public void ConnectControlSingleton_EditConnection_AuthChangedOnTheDialog_StudioResourceRepositoryLoadIsCalled() { 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 server1 = Guid.NewGuid(); var server2 = Guid.NewGuid(); var environmentModels = new List<IEnvironmentModel> { new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server1, CreateConnection(false).Object, new Mock<IResourceRepository>().Object, false), new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server2, CreateConnection(false).Object, new Mock<IResourceRepository>().Object, false) }; var environmentRepository = new Mock<IEnvironmentRepository>(); var environments = new List<IEnvironmentModel> { new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server1, CreateConnection(false, new Uri("http://localhost:3142/dsf"),AuthenticationType.Anonymous).Object, new Mock<IResourceRepository>().Object, false), new TestEnvironmentModel(new Mock<IEventAggregator>().Object, server2, CreateConnection(false, new Uri("http://localhost:3142/dsf"),AuthenticationType.Public).Object, new Mock<IResourceRepository>().Object, false) }; environmentRepository.Setup(e => e.All()).Returns(environments); serverProvider.Setup(s => s.Load()).Returns(environmentModels); IConnectControlSingleton connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object); var selectedIndex = -1; ConnectionEnumerations.ConnectedState actualConnectedState = ConnectionEnumerations.ConnectedState.Disconnected; bool actualDoCallback = false; Guid environmentId = Guid.Empty; connectControlSingleton.ConnectedStatusChanged += (sender, arg) => { actualConnectedState = arg.ConnectedStatus; actualDoCallback = arg.DoCallback; environmentId = arg.EnvironmentId; }; //------------Execute Test--------------------------- connectControlSingleton.EditConnection(1, index => { selectedIndex = index; }); //------------Assert Results------------------------- Assert.IsNotNull(connectControlSingleton); Assert.AreEqual(ConnectionEnumerations.ConnectedState.Busy, actualConnectedState); Assert.IsFalse(actualDoCallback); Assert.AreEqual(server1, environmentId); Assert.AreEqual(1, selectedIndex); studioResourceRepository.Verify(s => s.Load(It.IsAny<Guid>(), It.IsAny<IAsyncWorker>(), It.IsAny<Action<Guid>>()), Times.Once()); }
public void ConnectControlSingleton_EditConnection_ServerUriIsNotChangedOnTheDialog_StudioResourceRepositoryLoadIsNotCalled() { 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 environmentModels = new List<IEnvironmentModel> { new TestEnvironmentModel(new Mock<IEventAggregator>().Object, Guid.NewGuid(), CreateConnection(true).Object, new Mock<IResourceRepository>().Object, false), new TestEnvironmentModel(new Mock<IEventAggregator>().Object, Guid.NewGuid(), CreateConnection(false).Object, new Mock<IResourceRepository>().Object, false) }; var environmentRepository = new Mock<IEnvironmentRepository>(); environmentRepository.Setup(e => e.All()).Returns(environmentModels); serverProvider.Setup(s => s.Load()).Returns(environmentModels); IConnectControlSingleton connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object); var selectedIndex = -1; //------------Execute Test--------------------------- connectControlSingleton.EditConnection(1, index => { selectedIndex = index; }); //------------Assert Results------------------------- Assert.IsNotNull(connectControlSingleton); Assert.AreEqual(1, selectedIndex); studioResourceRepository.Verify(s => s.Load(It.IsAny<Guid>(), It.IsAny<IAsyncWorker>(), It.IsAny<Action<Guid>>()), Times.Never()); }
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()); }
public void ConnectControlSingleton_Constructor_ServerProviderReturnsOneEnvironment_WillHaveTwoEnvironmentsLoaded() { var studioResourceRepository = new Mock<IStudioResourceRepository>(); 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); //------------Execute Test--------------------------- IConnectControlSingleton connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object); //------------Assert Results------------------------- Assert.IsNotNull(connectControlSingleton); Assert.IsNotNull(connectControlSingleton.Servers); Assert.AreEqual(2, connectControlSingleton.Servers.Count); }