Exemple #1
0
        public void CanProvideASetOfProjectStatusMonitors()
        {
            CCTrayMultiConfiguration provider    = CreateTestConfiguration(ConfigXml);
            var          mockCruiseServerManager = new Mock <ICruiseServerManager>(MockBehavior.Strict);
            MockSequence sequence = new MockSequence();

            mockCruiseServerManager.InSequence(sequence).SetupGet(_manager => _manager.Configuration)
            .Returns(new BuildServer("tcp://blah1")).Verifiable();
            mockCruiseServerManager.InSequence(sequence).SetupGet(_manager => _manager.Configuration)
            .Returns(new BuildServer("tcp://blah2")).Verifiable();
            ICruiseServerManager cruiseServerManagerInstance = (ICruiseServerManager)mockCruiseServerManager.Object;

            mockServerConfigFactory.Setup(factory => factory.Create(provider.GetUniqueBuildServerList()[0]))
            .Returns(() => cruiseServerManagerInstance).Verifiable();
            mockServerConfigFactory.Setup(factory => factory.Create(provider.GetUniqueBuildServerList()[1]))
            .Returns(() => cruiseServerManagerInstance).Verifiable();
            ISingleServerMonitor[] serverMonitorList = provider.GetServerMonitors();

            mockProjectConfigFactory.Setup(factory => factory.Create(provider.Projects[0], It.IsAny <IDictionary <BuildServer, ICruiseServerManager> >()))
            .Returns(() => null).Verifiable();
            mockProjectConfigFactory.Setup(factory => factory.Create(provider.Projects[1], It.IsAny <IDictionary <BuildServer, ICruiseServerManager> >()))
            .Returns(() => null).Verifiable();

            IProjectMonitor[] monitorList = provider.GetProjectStatusMonitors(serverMonitorList);
            Assert.AreEqual(2, monitorList.Length);

            mockProjectConfigFactory.Verify();
            mockServerConfigFactory.Verify();
            mockCruiseServerManager.Verify();
        }
Exemple #2
0
        public void ShouldCloneConfigurationAndOnlyBindToTheClone()
        {
            var existingConfiguration = new Mock <ICCTrayMultiConfiguration>(MockBehavior.Strict);
            CCTrayMultiConfiguration clonedConfiguration = new CCTrayMultiConfiguration(null, null, null);

            existingConfiguration.Setup(_configuration => _configuration.Clone()).Returns(clonedConfiguration).Verifiable();

            NullReferenceException nullReference = null;

            try
            {
                new CCTrayMultiSettingsForm((ICCTrayMultiConfiguration)existingConfiguration.Object);
            }
            catch (NullReferenceException e)
            {
                nullReference = e;
            }

            // As we are using a Strict mock, incorrect calls to the existing configuration
            // will be caught by the verify.
            existingConfiguration.Verify();
            Assert.IsNull(nullReference,
                          "There was a null reference exception not related to using existing configuration:\n{0}",
                          nullReference);
        }
        public void ShouldCloneConfigurationAndOnlyBindToTheClone()
        {
            DynamicMock existingConfiguration = new DynamicMock(typeof(ICCTrayMultiConfiguration));

            existingConfiguration.Strict = true;
            CCTrayMultiConfiguration clonedConfiguration = new CCTrayMultiConfiguration(null, null, null);

            existingConfiguration.ExpectAndReturn("Clone", clonedConfiguration);

            NullReferenceException nullReference = null;

            try
            {
                new CCTrayMultiSettingsForm((ICCTrayMultiConfiguration)existingConfiguration.MockInstance);
            }
            catch (NullReferenceException e)
            {
                nullReference = e;
            }

            // As we are using a Strict mock, incorrect calls to the existing configuration
            // will be caught by the verify.
            existingConfiguration.Verify();
            Assert.IsNull(nullReference,
                          "There was a null reference exception not related to using existing configuration:\n{0}",
                          nullReference);
        }
        public void CanPersistAndReloadX10Configuration()
        {
            CCTrayMultiConfiguration configuration = CreateTestConfiguration(ConfigXml);

            configuration.Persist();

            configuration.Reload();
        }
        public void CanBuildUniqueServerListWithTwoUniqueServerProjects()
        {
            CCTrayMultiConfiguration configuration = CreateTestConfiguration(ConfigXml);

            BuildServer[] buildServers = configuration.GetUniqueBuildServerList();
            Assert.AreEqual(2, buildServers.Length);
            Assert.AreEqual("tcp://blah1", buildServers[0].Url);
            Assert.AreEqual("tcp://blah2", buildServers[1].Url);
        }
Exemple #6
0
        private static MainForm GetMainForm(string settingsFilename)
        {
            var remoteCruiseManagerFactory = new CruiseServerClientFactory();
            ICruiseServerManagerFactory  cruiseServerManagerFactory  = new CruiseServerManagerFactory(remoteCruiseManagerFactory);
            ICruiseProjectManagerFactory cruiseProjectManagerFactory = new CruiseProjectManagerFactory(remoteCruiseManagerFactory);
            CCTrayMultiConfiguration     configuration = new CCTrayMultiConfiguration(cruiseServerManagerFactory, cruiseProjectManagerFactory, settingsFilename);

            return(new MainForm(configuration));
        }
        public void WhenTheConfigurationDoesNotContainDirectivesRelatingToShowingBalloonsItDefaultsToTrue()
        {
            const string ConfigWithoutBalloonStuff = @"
<Configuration>
	<Projects />
</Configuration>";

            CCTrayMultiConfiguration configuration = CreateTestConfiguration(ConfigWithoutBalloonStuff);

            Assert.IsTrue(configuration.ShouldShowBalloonOnBuildTransition);
        }
        public void CanLoadConfigurationFromFile()
        {
            CCTrayMultiConfiguration configuration = CreateTestConfiguration(ConfigXml);

            Assert.AreEqual(2, configuration.Projects.Length);
            Assert.AreEqual("tcp://blah1", configuration.Projects[0].ServerUrl);
            Assert.AreEqual("ProjectOne", configuration.Projects[0].ProjectName);
            Assert.AreEqual("tcp://blah2", configuration.Projects[1].ServerUrl);
            Assert.AreEqual("Project Two", configuration.Projects[1].ProjectName);

            Assert.IsTrue(configuration.ShouldShowBalloonOnBuildTransition);
        }
        public void CanProvideASetOfServerMonitors()
        {
            CCTrayMultiConfiguration configuration = CreateTestConfiguration(ConfigXml);

            mockServerConfigFactory.ExpectAndReturn("Create", null, configuration.GetUniqueBuildServerList()[0]);
            mockServerConfigFactory.ExpectAndReturn("Create", null, configuration.GetUniqueBuildServerList()[1]);

            IServerMonitor[] monitorList = configuration.GetServerMonitors();
            Assert.AreEqual(2, monitorList.Length);

            mockServerConfigFactory.Verify();
        }
Exemple #10
0
        public void CanProvideASetOfServerMonitors()
        {
            CCTrayMultiConfiguration configuration = CreateTestConfiguration(ConfigXml);

            mockServerConfigFactory.Setup(factory => factory.Create(configuration.GetUniqueBuildServerList()[0]))
            .Returns(() => null).Verifiable();
            mockServerConfigFactory.Setup(factory => factory.Create(configuration.GetUniqueBuildServerList()[1]))
            .Returns(() => null).Verifiable();

            IServerMonitor[] monitorList = configuration.GetServerMonitors();
            Assert.AreEqual(2, monitorList.Length);

            mockServerConfigFactory.Verify();
        }
        public void CanBuildUniqueServerListWithTwoSameServerProjects()
        {
            const string             SameServerProjectConfigXml = @"
<Configuration>
	<Projects>
		<Project serverUrl='tcp://blah1' projectName='ProjectOne' />
		<Project serverUrl='tcp://blah1' projectName='ProjectTwo' />
	</Projects>
</Configuration>";
            CCTrayMultiConfiguration configuration = CreateTestConfiguration(SameServerProjectConfigXml);

            BuildServer[] buildServers = configuration.GetUniqueBuildServerList();
            Assert.AreEqual(1, buildServers.Length);
            Assert.AreEqual("tcp://blah1", buildServers[0].Url);
        }
Exemple #12
0
        public void CreatesAnEmptySettingsFileIfTheConfigFileIsNotFound()
        {
            mockProjectConfigFactory = new Mock <ICruiseProjectManagerFactory>(MockBehavior.Strict);
            CCTrayMultiConfiguration configuration = new CCTrayMultiConfiguration(
                (ICruiseServerManagerFactory)mockServerConfigFactory.Object,
                (ICruiseProjectManagerFactory)mockProjectConfigFactory.Object,
                "config_file_that_isnt_present.xml");

            Assert.IsNotNull(configuration);
            Assert.AreEqual(0, configuration.Projects.Length);
            Assert.IsTrue(configuration.ShouldShowBalloonOnBuildTransition);
            Assert.IsNull(configuration.Audio.BrokenBuildSound);
            Assert.IsNull(configuration.Audio.FixedBuildSound);
            Assert.IsNull(configuration.Audio.StillFailingBuildSound);
            Assert.IsNull(configuration.Audio.StillSuccessfulBuildSound);
            Assert.IsFalse(configuration.X10.Enabled);
        }
        public void CanPersist()
        {
            const string SimpleConfig = @"
<Configuration>
	<Projects />
</Configuration>";

            CCTrayMultiConfiguration configuration = CreateTestConfiguration(SimpleConfig);

            configuration.Projects = new CCTrayProject[1] {
                new CCTrayProject("tcp://url", "projName")
            };

            configuration.Persist();

            configuration.Reload();
            Assert.AreEqual(1, configuration.Projects.Length);
            Assert.AreEqual("projName", configuration.Projects[0].ProjectName);
        }
Exemple #14
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.DoEvents();

            try
            {
                ICruiseManagerFactory        remoteCruiseManagerFactory  = new RemoteCruiseManagerFactory();
                ICruiseProjectManagerFactory cruiseProjectManagerFactory = new CruiseProjectManagerFactory(remoteCruiseManagerFactory);
                CCTrayMultiConfiguration     configuration = new CCTrayMultiConfiguration(cruiseProjectManagerFactory, GetSettingsFilename());

                MainForm mainForm = new MainForm(configuration);

                Application.Run(mainForm);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Failed to start: " + ex, AppDomain.CurrentDomain.FriendlyName);
            }
        }
        public void CanProvideASetOfProjectStatusMonitors()
        {
            CCTrayMultiConfiguration provider   = CreateTestConfiguration(ConfigXml);
            DynamicMock mockCruiseServerManager = new DynamicMock(typeof(ICruiseServerManager));

            mockCruiseServerManager.Strict = true;
            mockCruiseServerManager.ExpectAndReturn("Configuration", new BuildServer("tcp://blah1"));
            mockCruiseServerManager.ExpectAndReturn("Configuration", new BuildServer("tcp://blah2"));
            ICruiseServerManager cruiseServerManagerInstance = (ICruiseServerManager)mockCruiseServerManager.MockInstance;

            mockServerConfigFactory.ExpectAndReturn("Create", cruiseServerManagerInstance, provider.GetUniqueBuildServerList()[0]);
            mockServerConfigFactory.ExpectAndReturn("Create", cruiseServerManagerInstance, provider.GetUniqueBuildServerList()[1]);
            ISingleServerMonitor[] serverMonitorList = provider.GetServerMonitors();

            mockProjectConfigFactory.ExpectAndReturn("Create", null, provider.Projects[0], null);
            mockProjectConfigFactory.ExpectAndReturn("Create", null, provider.Projects[1], null);

            IProjectMonitor[] monitorList = provider.GetProjectStatusMonitors(serverMonitorList);
            Assert.AreEqual(2, monitorList.Length);

            mockProjectConfigFactory.Verify();
            mockServerConfigFactory.Verify();
            mockCruiseServerManager.Verify();
        }