public void ShouldOnlyDisposeOnce() { string configFile = CreateTemporaryConfigurationFile(); IMock mockCruiseManager = new RemotingMock(typeof (ICruiseManager)); IMock mockCruiseServer = new DynamicMock(typeof (ICruiseServer)); mockCruiseServer.ExpectAndReturn("CruiseManager", mockCruiseManager.MockInstance); mockCruiseServer.ExpectAndReturn("CruiseManager", mockCruiseManager.MockInstance); mockCruiseServer.Expect("Dispose"); RemoteCruiseServer server = new RemoteCruiseServer((ICruiseServer) mockCruiseServer.MockInstance, configFile); ((IDisposable)server).Dispose(); mockCruiseServer.ExpectNoCall("Dispose"); ((IDisposable)server).Dispose(); mockCruiseServer.Verify(); }
public void ForceBuildProcessedWiredCorrectly() { var mocks = new MockRepository(); var innerServer = mocks.DynamicMock<ICruiseServer>(); var raiser = Expect.Call(() => { innerServer.ForceBuildProcessed += null; }) .IgnoreArguments() .GetEventRaiser(); mocks.ReplayAll(); var configFile = this.CreateTemporaryConfigurationFile(); var eventFired = false; using (var server = new RemoteCruiseServer(innerServer, configFile, true)) { server.ForceBuildProcessed += (o, e) => { eventFired = true; }; raiser.Raise(innerServer, new ProjectEventArgs<string>("test", "data")); } Assert.IsTrue(eventFired); mocks.VerifyAll(); }
public RemoteCruiseServer(ICruiseServer server, string configFile) { _self = this; _server = server; RegisterForRemoting(configFile); XmlDocument document = new XmlDocument(); document.Load(configFile); XPathNavigator Navigator = document.CreateNavigator(); string RestUri = Navigator.SelectSingleNode("/cruisecontrol/@restUri").ToString(); if (string.IsNullOrEmpty(RestUri)) { throw new InvalidProgramException(@"Please set the attribute ""restUri"" on the root node ""cruisecontrol"" in the ccnet project file."); } Uri uri = new Uri(RestUri); Host = new WebServiceHost(typeof(CIFactoryServer), uri); Host.AddServiceEndpoint(typeof(ICIFactoryServer), new WebHttpBinding(), uri); Host.Open(); }
public void IntegrationCompletedWiredCorrectly() { var mocks = new MockRepository(); var innerServer = mocks.DynamicMock<ICruiseServer>(); var raiser = Expect.Call(() => { innerServer.IntegrationCompleted += null; }) .IgnoreArguments() .GetEventRaiser(); mocks.ReplayAll(); var configFile = this.CreateTemporaryConfigurationFile(); var eventFired = false; using (var server = new RemoteCruiseServer(innerServer, configFile, true)) { server.IntegrationCompleted += (o, e) => { eventFired = true; }; raiser.Raise(innerServer, new IntegrationCompletedEventArgs(null, "test", IntegrationStatus.Success)); } Assert.IsTrue(eventFired); mocks.VerifyAll(); }
public void GetFinalBuildStatusPassesOnCall() { var mocks = new MockRepository(); var innerServer = mocks.DynamicMock<ICruiseServer>(); var request = new BuildRequest(); var response = new StatusSnapshotResponse(); Expect.Call(innerServer.GetFinalBuildStatus(request)) .Return(response); mocks.ReplayAll(); var configFile = this.CreateTemporaryConfigurationFile(); using (var server = new RemoteCruiseServer(innerServer, configFile, true)) { var actual = server.GetFinalBuildStatus(request); Assert.AreSame(response, actual); } mocks.VerifyAll(); }