public void DeserialiseEventKnownFSharpTypeIsKnow()
 {
     var evt = new LeaveEntryCreated(Guid.NewGuid(), DateTime.Now, DateTime.UtcNow, "Foo");
     var json = JsonConvert.SerializeObject(evt);
     var des = JsonConvert.DeserializeObject<LeaveEntryCreated>(json);
     Assert.AreEqual(evt, des);
 }
 public void Given()
 {
     var id = Guid.NewGuid();
     var employeeId = Guid.NewGuid();
     var startDate = DateTime.UtcNow;
     var event1 = new LeaveEntryCreated(employeeId, startDate, startDate.AddDays(1),  "foo");
     var event2 = new LeaveEntryCreated(employeeId, startDate, startDate.AddDays(1), "foo");
     Assert.AreEqual(event1, event2);
 }
        public void DeserialiseEventKnownFSharpTypeIsKnowInvered()
        {
            var evt = new LeaveEntryCreated(Guid.NewGuid(), DateTime.Now, DateTime.UtcNow, "Foo");
            var json = JsonConvert.SerializeObject(evt);
            var eventHeader = new Dictionary<string, string>
                           {
                               { "EventClrType", evt.GetType().AssemblyQualifiedName }
                           };
            var metaData = JsonConvert.SerializeObject(eventHeader);

            var eventName = JObject.Parse(metaData).Property("EventClrType").Value.ToString();
            var eventType = Type.GetType(eventName);
            var des = JsonConvert.DeserializeObject(json, eventType);
            Assert.AreEqual(evt, des);
        }