public void SerializationTest() { // Arrange. var initiatorId = new Guid("{9065A3C5-CA76-489A-BF10-0C1484304E6D}"); var status = new PublishStatus(); status.Stage = "Test Stage"; status.StatusText = "Test Status Text"; status.Progress = 12.34; status.Exception = "Test Exception"; status.InitiatorId = initiatorId; status.BuildFailure = new BuildFailure(); status.BuildFailure.ErrorText = "Test Error Text"; status.BuildFailure.Line = 123; status.BuildFailure.ProcessName = "Test Process"; status.BuildFailure.IsServerSide = true; // Act. var binaryData = MobileFormatter.Serialize(status); var copy = (PublishStatus)MobileFormatter.Deserialize(binaryData); // Assert. Assert.IsNotNull(copy); Assert.AreEqual("Test Stage", copy.Stage); Assert.AreEqual("Test Status Text", copy.StatusText); Assert.AreEqual(12.34, copy.Progress); Assert.AreEqual("Test Exception", copy.Exception); Assert.AreEqual(initiatorId, copy.InitiatorId); Assert.IsNotNull(copy.BuildFailure); Assert.AreEqual("Test Error Text", copy.BuildFailure.ErrorText); Assert.AreEqual(123, copy.BuildFailure.Line); Assert.AreEqual("Test Process", copy.BuildFailure.ProcessName); Assert.IsTrue(copy.BuildFailure.IsServerSide); }
/// <summary> /// Notifies all clients about publishing status. /// </summary> /// <param name="status">The status.</param> public static void NotifyPublishStatus(PublishStatus status) { PublishStatus = status; var context = GlobalHost.ConnectionManager.GetHubContext<RuntimeHub>(); context.Clients.All.NotifyPublishStatus(status); }