public void TestConsumerStateChangeNotification() { // Consumer JobStateChange var env = new RPCEnvelope(); var con = new JobStateChange(); env.Message = con; env.Operation = con.GetType().Name; con.Id = Guid.NewGuid(); con.Timestamp = DateTime.UtcNow; con.State = "Setup"; var iso = new Newtonsoft.Json.Converters.IsoDateTimeConverter(); iso.DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffK"; string json = Newtonsoft.Json.JsonConvert .SerializeObject(env, iso); // Orchestrator JobStateChange JToken token = JObject.Parse(json); String op = (string)token.SelectToken("Operation"); JToken msg = token.SelectToken("Mesage"); Assert.IsTrue(op == "JobStateChange"); var serializer = new Newtonsoft.Json.JsonSerializer(); Newtonsoft.Json.JsonReader reader = token["Message"].CreateReader(); var job = serializer.Deserialize <JobStateChange>(reader); Assert.AreEqual(((JobStateChange)env.Message).State, job.State); }
internal static void Send(JobStateChange msg) { var env = new RPCEnvelope(); env.Message = msg; env.Operation = "JobStateChange"; env.ResponseQueueUrl = null; Send(msg.GetType().Name, JsonConvert.SerializeObject(env)); }