public void ThreadNumberSchedulerChoosesServiceWithSmallestNoOfThreads() { var serviceUri1 = new ServiceUri(){Address="1"}; var serviceUri2 = new ServiceUri() { Address = "2" }; var noOfTasks1 = new Dictionary<ExecutorState, int>() { {ExecutorState.Running, 15} }; var noOfTasks2 = new Dictionary<ExecutorState, int>() { {ExecutorState.Running, 10} }; Dictionary<ServiceUri, PerformanceStatistics> services = new Dictionary<ServiceUri, PerformanceStatistics>() { {serviceUri1, new PerformanceStatistics(){NumberOfTasks=noOfTasks1}}, {serviceUri2, new PerformanceStatistics(){NumberOfTasks=noOfTasks2}}, }; var connectionManagerMock = new Mock<IConnectionManager>(MockBehavior.Strict); connectionManagerMock.Setup(cm => cm.RemoteServices).Returns(services); var scheduler = new ThreadNumberScheduler(connectionManagerMock.Object); scheduler.GetRemoteServiceUri().ShouldBe(serviceUri2); }