Beispiel #1
0
        public void CreateManagerGeneratesDefault()
        {
            IConfiguration configuration = mocks.Create <IConfiguration>().Object;
            IProjectList   projectList   = mocks.Create <IProjectList>().Object;
            IEnumerator    enumerator    = mocks.Create <IEnumerator>().Object;

            Mock.Get(enumerator).Setup(_enumerator => _enumerator.MoveNext()).Returns(false);
            Mock.Get(projectList).Setup(_projectList => _projectList.GetEnumerator()).Returns(enumerator);
            Mock.Get(configuration).Setup(_configuration => _configuration.Projects).Returns(projectList);
            IProjectIntegratorListFactory listFactory = mocks.Create <IProjectIntegratorListFactory>().Object;
            IProjectIntegratorList        list        = mocks.Create <IProjectIntegratorList>().Object;

            Mock.Get(list).SetupGet(_list => _list.Count).Returns(0);
            Mock.Get(listFactory).Setup(_listFactory => _listFactory.CreateProjectIntegrators(It.IsAny <IProjectList>(), It.IsAny <IntegrationQueueSet>())).Returns(list);

            object instance = IntegrationQueueManagerFactory.CreateManager(listFactory, configuration, null);

            Assert.That(instance, Is.InstanceOf <IntegrationQueueManager>());
        }
Beispiel #2
0
        public void CreateManagerGeneratesDefault()
        {
            IConfiguration configuration = mocks.DynamicMock <IConfiguration>();
            IProjectList   projectList   = mocks.DynamicMock <IProjectList>();
            IEnumerator    enumerator    = mocks.DynamicMock <IEnumerator>();

            SetupResult.For(enumerator.MoveNext()).Return(false);
            SetupResult.For(projectList.GetEnumerator()).Return(enumerator);
            SetupResult.For(configuration.Projects).Return(projectList);
            IProjectIntegratorListFactory listFactory = mocks.DynamicMock <IProjectIntegratorListFactory>();
            IProjectIntegratorList        list        = mocks.DynamicMock <IProjectIntegratorList>();

            SetupResult.For(list.Count).Return(0);
            SetupResult.For(listFactory.CreateProjectIntegrators(null, null)).IgnoreArguments().Return(list);
            mocks.ReplayAll();

            object instance = IntegrationQueueManagerFactory.CreateManager(listFactory, configuration, null);

            Assert.That(instance, Is.InstanceOf <IntegrationQueueManager>());
        }
Beispiel #3
0
        public void OverrideChangesFactory()
        {
            IQueueManagerFactory newFactory = mocks.Create <IQueueManagerFactory>(MockBehavior.Strict).Object;
            IQueueManager        newManager = mocks.Create <IQueueManager>(MockBehavior.Strict).Object;

            Mock.Get(newFactory).Setup(_newFactory => _newFactory.Create(null, null, null)).Returns(newManager).Verifiable();

            IntegrationQueueManagerFactory.OverrideFactory(newFactory);
            try
            {
                object instance = IntegrationQueueManagerFactory.CreateManager(null, null, null);
                Assert.AreSame(newManager, instance);
            }
            finally
            {
                // Clean up - otherwise the static instance will be corrected
                IntegrationQueueManagerFactory.ResetFactory();
            }
            mocks.VerifyAll();
        }
Beispiel #4
0
        public void OverrideChangesFactory()
        {
            IQueueManagerFactory newFactory = mocks.StrictMock <IQueueManagerFactory>();
            IQueueManager        newManager = mocks.StrictMock <IQueueManager>();

            Expect.Call(newFactory.Create(null, null, null)).Return(newManager);
            mocks.ReplayAll();

            IntegrationQueueManagerFactory.OverrideFactory(newFactory);
            try
            {
                object instance = IntegrationQueueManagerFactory.CreateManager(null, null, null);
                Assert.AreSame(newManager, instance);
            }
            finally
            {
                // Clean up - otherwise the static instance will be corrected
                IntegrationQueueManagerFactory.ResetFactory();
            }
            mocks.VerifyAll();
        }
Beispiel #5
0
        /// <summary>
        /// Initialises the server.
        /// </summary>
        /// <param name="mocks">The mocks repository.</param>
        /// <param name="buildName">Name of the build.</param>
        /// <param name="buildLog">The build log.</param>
        /// <returns>The initialised server.</returns>
        private static CruiseServer InitialiseServer(MockRepository mocks, string buildName, string buildLog)
        {
            // Add some projects
            var projects = new ProjectList();
            var project  = new Project
            {
                Name = testProjectName
            };

            projects.Add(project);

            // Mock the configuration
            var configuration = mocks.Create <IConfiguration>(MockBehavior.Strict).Object;

            Mock.Get(configuration).SetupGet(_configuration => _configuration.Projects)
            .Returns(projects);
            Mock.Get(configuration).SetupGet(_configuration => _configuration.SecurityManager)
            .Returns(new NullSecurityManager());

            // Mock the configuration service
            var configService = mocks.Create <IConfigurationService>(MockBehavior.Strict).Object;

            Mock.Get(configService).Setup(_configService => _configService.Load())
            .Returns(configuration);
            Mock.Get(configService).Setup(_configService => _configService.AddConfigurationUpdateHandler(It.IsAny <ConfigurationUpdateHandler>())).Verifiable();

            // Mock the integration repostory
            var repository = mocks.Create <IIntegrationRepository>(MockBehavior.Strict).Object;

            Mock.Get(repository).Setup(_repository => _repository.GetBuildLog(buildName))
            .Returns(buildLog);

            // Mock the project integrator
            var projectIntegrator = mocks.Create <IProjectIntegrator>(MockBehavior.Strict).Object;

            Mock.Get(projectIntegrator).SetupGet(_projectIntegrator => _projectIntegrator.Project)
            .Returns(project);
            Mock.Get(projectIntegrator).SetupGet(_projectIntegrator => _projectIntegrator.IntegrationRepository)
            .Returns(repository);

            // Mock the queue manager
            var queueManager = mocks.Create <IQueueManager>(MockBehavior.Strict).Object;

            Mock.Get(queueManager).Setup(_queueManager => _queueManager.AssociateIntegrationEvents(It.IsAny <EventHandler <IntegrationStartedEventArgs> >(), It.IsAny <EventHandler <IntegrationCompletedEventArgs> >())).Verifiable();
            Mock.Get(queueManager).Setup(_queueManager => _queueManager.GetIntegrator(testProjectName))
            .Returns(projectIntegrator);

            // Mock the queue manager factory
            var queueManagerFactory = mocks.Create <IQueueManagerFactory>(MockBehavior.Strict).Object;

            Mock.Get(queueManagerFactory).Setup(_queueManagerFactory => _queueManagerFactory.Create(null, configuration, null))
            .Returns(queueManager);
            IntegrationQueueManagerFactory.OverrideFactory(queueManagerFactory);

            // Mock the execution environment
            var execEnviron = mocks.Create <IExecutionEnvironment>(MockBehavior.Strict).Object;

            Mock.Get(execEnviron).Setup(_execEnviron => _execEnviron.GetDefaultProgramDataFolder(ApplicationType.Server))
            .Returns(string.Empty);

            // Initialise the server
            var server = new CruiseServer(
                configService,
                null,
                null,
                null,
                null,
                execEnviron,
                null);

            return(server);
        }
Beispiel #6
0
 public void Teardown()
 {
     IntegrationQueueManagerFactory.ResetFactory();
 }
Beispiel #7
0
        /// <summary>
        /// Initialises the server.
        /// </summary>
        /// <param name="mocks">The mocks repository.</param>
        /// <param name="buildName">Name of the build.</param>
        /// <param name="buildLog">The build log.</param>
        /// <returns>The initialised server.</returns>
        private static CruiseServer InitialiseServer(MockRepository mocks, string buildName, string buildLog)
        {
            // Add some projects
            var projects = new ProjectList();
            var project  = new Project
            {
                Name = testProjectName
            };

            projects.Add(project);

            // Mock the configuration
            var configuration = mocks.StrictMock <IConfiguration>();

            SetupResult.For(configuration.Projects)
            .Return(projects);
            SetupResult.For(configuration.SecurityManager)
            .Return(new NullSecurityManager());

            // Mock the configuration service
            var configService = mocks.StrictMock <IConfigurationService>();

            SetupResult.For(configService.Load())
            .Return(configuration);
            Expect.Call(() => { configService.AddConfigurationUpdateHandler(null); })
            .IgnoreArguments();

            // Mock the integration repostory
            var repository = mocks.StrictMock <IIntegrationRepository>();

            SetupResult.For(repository.GetBuildLog(buildName))
            .Return(buildLog);

            // Mock the project integrator
            var projectIntegrator = mocks.StrictMock <IProjectIntegrator>();

            SetupResult.For(projectIntegrator.Project)
            .Return(project);
            SetupResult.For(projectIntegrator.IntegrationRepository)
            .Return(repository);

            // Mock the queue manager
            var queueManager = mocks.StrictMock <IQueueManager>();

            Expect.Call(() => { queueManager.AssociateIntegrationEvents(null, null); })
            .IgnoreArguments();
            SetupResult.For(queueManager.GetIntegrator(testProjectName))
            .Return(projectIntegrator);

            // Mock the queue manager factory
            var queueManagerFactory = mocks.StrictMock <IQueueManagerFactory>();

            SetupResult.For(queueManagerFactory.Create(null, configuration, null))
            .Return(queueManager);
            IntegrationQueueManagerFactory.OverrideFactory(queueManagerFactory);

            // Mock the execution environment
            var execEnviron = mocks.StrictMock <IExecutionEnvironment>();

            SetupResult.For(execEnviron.GetDefaultProgramDataFolder(ApplicationType.Server))
            .Return(string.Empty);

            // Initialise the server
            mocks.ReplayAll();
            var server = new CruiseServer(
                configService,
                null,
                null,
                null,
                null,
                execEnviron,
                null);

            return(server);
        }