public Messages.Blank DoSomething(Messages.Blank request)
            {
                if (this.DoSomethingAction != null)
                {
                    this.DoSomethingAction();
                }

                return(null);
            }
예제 #2
0
 public virtual Messages.OperationReport Stop(Messages.Blank request)
 {
     try
     {
         this.Stop();
         var response = new Messages.OperationReport(true, "Stopping");
         return(response);
     }
     catch
     {
         return(new Messages.OperationReport(false, "Unable to stop!"));
     }
 }
예제 #3
0
        public virtual Messages.ServerItemList ListChildren(Messages.Blank request)
        {
            var serverItems = this.Children
                              .Select(p => new Messages.ServerItem
            {
                Description = p.Description,
                DisplayName = p.Name,
                Urn         = p.UniversalName
            });
            var response = new Messages.ServerItemList(serverItems);

            return(response);
        }
 public void InvokeHandlesExceptionOnInvoker()
 {
     var urn = "urn:ccnet:local";
     var action = "DoSomething";
     var args = new Messages.Blank();
     var invokerMock = new Mock<IActionInvoker>(MockBehavior.Strict);
     invokerMock.Setup(ai => ai.Invoke(urn, It.IsAny<InvokeArguments>()))
         .Throws(new Exception("Oops, something bad happened!"));
     var error = Assert.Throws<RemoteServerException>(
         () => this.RunTest(invokerMock.Object, c => c.Invoke(urn, action, args)));
     Assert.IsNotNull(error.LogId);
     Assert.AreEqual(RemoteResultCode.FatalError, error.ResultCode);
 }
예제 #5
0
        public virtual Messages.ProjectStatus GetStatus(Messages.Blank request)
        {
            var response = new Messages.ProjectStatus
            {
                Status = this.State.ToString()
            };

            if ((this.PersistedState != null) && (this.PersistedState.LastIntegration != null))
            {
                response.LastBuildDate = this.PersistedState.LastIntegration.FinishTime;
            }

            return(response);
        }
예제 #6
0
        public void StartMessageStartsProject()
        {
            var started = false;
            var project = new ProjectStub
            {
                Name        = "Test",
                OnLoadState = () => { },
                OnStart     = () => started = true
            };
            var request = new Messages.Blank();

            project.Start(request);
            Thread.Sleep(100);
            Assert.IsTrue(started);
        }
 public void InvokeHandlesFailure()
 {
     var urn = "urn:ccnet:local";
     var action = "DoSomething";
     var args = new Messages.Blank();
     var returnValue = new InvokeResult
                           {
                               ResultCode = RemoteResultCode.InvalidInput
                           };
     var invokerMock = new Mock<IActionInvoker>(MockBehavior.Strict);
     invokerMock.Setup(ai => ai.Invoke(urn, It.IsAny<InvokeArguments>()))
         .Callback((string u, InvokeArguments a) => Assert.AreEqual(action, a.Action))
         .Returns(returnValue);
     var error = Assert.Throws<RemoteServerException>(
         () => this.RunTest(invokerMock.Object, c => c.Invoke(urn, action, args)));
     Assert.IsNotNull(error.LogId);
     Assert.AreEqual(returnValue.ResultCode, error.ResultCode);
 }
예제 #8
0
        public virtual Messages.SingleValue GetVersion(Messages.Blank request)
        {
            if (serverVersion == null)
            {
                // Retrieve and cache the version
                lock (versionLockObject)
                {
                    if (serverVersion == null)
                    {
                        serverVersion = Assembly.GetExecutingAssembly().GetName().Version;
                    }
                }
            }

            // Return the version
            var response = new Messages.SingleValue(serverVersion.ToString());

            return(response);
        }
 public void InvokeHandlesSuccess()
 {
     var urn = "urn:ccnet:local";
     var action = "DoSomething";
     var args = new Messages.Blank();
     var returnValue = new InvokeResult
                           {
                               ResultCode = RemoteResultCode.Success,
                               Data = MessageSerialiser.Serialise(new Messages.Blank())
                           };
     var invokerMock = new Mock<IActionInvoker>(MockBehavior.Strict);
     invokerMock.Setup(ai => ai.Invoke(urn, It.IsAny<InvokeArguments>()))
         .Callback((string u, InvokeArguments a) =>
                       {
                           Assert.AreEqual(action, a.Action);
                           Assert.AreEqual(returnValue.Data, a.Data);
                       })
         .Returns(returnValue);
     var result = this.RunTest(invokerMock.Object, c => c.Invoke(urn, action, args));
     Assert.IsInstanceOf<Messages.Blank>(result);
 }
 public Messages.Blank DoSomething(Messages.Blank message)
 {
     this.WasInvoked = true;
     return(new Messages.Blank());
 }
예제 #11
0
 public void StopMessageStopsProject()
 {
     var stopped = false;
     var project = new ProjectStub
                       {
                           Name = "Test",
                           OnLoadState = () => { },
                           OnStop = () => stopped = true
                       };
     var request = new Messages.Blank();
     project.Start();
     Thread.Sleep(100);
     project.Stop(request);
     Thread.Sleep(500);
     Assert.IsTrue(stopped);
 }