コード例 #1
0
        public void Serialize_theEvent_null()
        {
            var formatter = new JsonEventFormatter(_typeResolver);
            var ex        = Assert.Throws <ArgumentNullException>(() => formatter.Serialize(null));

            ex.ParamName.Should().Be("theEvent");
        }
コード例 #2
0
        public void Serialize()
        {
            Assert.Ignore("Throwing an error about not finding NUnit.dll - not sure why...");
            var formatter = new JsonEventFormatter(_typeResolver);
            var theEvent  = new AnEvent(
                eventIdentifier: new Guid("402639D5-4106-4AE7-B210-45780C7A08F3"),
                eventSourceId: new Guid("697BAB3C-E122-4C70-85B0-76750BC2D878"),
                eventSequence: 1,
                eventTimeStamp: new DateTime(2001, 4, 12, 12, 52, 21, 425, DateTimeKind.Utc))
            {
                Day   = new DateTime(2000, 01, 01),
                Name  = "Alice",
                Value = 10,
            };

            var result = formatter.Serialize(theEvent);

            result.EventName.Should().Be("bob");
            result.EventIdentifier.Should().Be(theEvent.EventIdentifier);
            result.EventSourceId.Should().Be(theEvent.EventSourceId);
            result.EventSequence.Should().Be(theEvent.EventSequence);
            result.EventTimeStamp.Should().Be(theEvent.EventTimeStamp);
            result.EventVersion.Should().Be(theEvent.EventVersion);

            result.Data.Should().NotBeNull();
            result.Data.Count.Should().Be(3);
            result.Data.Value <string>("Name").Should().Be(theEvent.Name);
            result.Data.Value <int>("Value").Should().Be(theEvent.Value);
            result.Data.Value <DateTime>("Day").Should().Be(theEvent.Day);
        }
コード例 #3
0
        public void Save(IEventSource source)
        {
            FileInfo file = source.EventSourceId.GetEventStoreFileInfo(_path);

            if (!file.Exists && !file.Directory.Exists)
            {
                file.Directory.Create();
            }
            try
            {
                source.EventSourceId.GetWriteLock();
                if (file.Exists)
                {
                    if (GetVersion(source.EventSourceId) > source.InitialVersion)
                    {
                        throw new ConcurrencyException(source.EventSourceId, source.Version);
                    }
                }
                using (var writer = file.OpenWrite())
                {
                    writer.Seek(0, SeekOrigin.End);
                    var indicies = new long[source.GetUncommittedEvents().Count()];
                    var i        = 0;
                    var index    = writer.Position;
                    foreach (SourcedEvent sourcedEvent in source.GetUncommittedEvents())
                    {
                        StoredEvent <JObject> storedEvent = _formatter.Serialize(sourcedEvent);
                        var bytes = storedEvent.GetBytes();
                        writer.Write(BitConverter.GetBytes(bytes.Length), 0, 4);
                        writer.Write(bytes, 0, bytes.Length);
                        indicies[i++] = index;
                        index        += bytes.Length;
                    }
                    UpdateEventSourceIndexFile(source.EventSourceId, indicies);
                    writer.Flush();
                }
            }
            finally
            {
                source.EventSourceId.ReleaseWriteLock();
            }
        }
コード例 #4
0
        public void Serialize()
        {
            var formatter = new JsonEventFormatter(_typeResolver);
            var theEvent = new AnEvent {
                Day = new DateTime(2000, 01, 01),
                Name = "Alice",
                Value = 10,
            };

            string eventName;
            var result = formatter.Serialize(theEvent, out eventName);

            eventName.Should().Be("bob");

            result.Should().NotBeNull();
            result.Count.Should().Be(3);
            result.Value<string>("Name").Should().Be(theEvent.Name);
            result.Value<int>("Value").Should().Be(theEvent.Value);
            result.Value<DateTime>("Day").Should().Be(theEvent.Day);
        }
コード例 #5
0
        public byte[] GetBytes(UncommittedEvent evnt)
        {
            string  eventName;
            JObject serializedPayload = _formatter.Serialize(evnt.Payload, out eventName);
            var     output            = new MemoryStream();
            var     writer            = new BinaryWriter(output);

            writer.Write(evnt.CommitId.ToByteArray());
            writer.Write(evnt.EventIdentifier.ToByteArray());
            writer.Write(evnt.EventSequence);
            writer.Write(evnt.EventTimeStamp.Ticks);
            writer.Write(eventName);
            writer.Write(evnt.EventVersion.ToString());
            var bsonWriter = new BsonWriter(output);

            serializedPayload.WriteTo(bsonWriter);
            bsonWriter.Flush();
            output.Flush();
            return(output.ToArray());
        }
コード例 #6
0
        public void Serialize()
        {
            var formatter = new JsonEventFormatter(_typeResolver);
            var theEvent  = new AnEvent {
                Day   = new DateTime(2000, 01, 01),
                Name  = "Alice",
                Value = 10,
            };

            string eventName;
            var    result = formatter.Serialize(theEvent, out eventName);

            eventName.Should().Be("bob");

            result.Should().NotBeNull();
            result.Count.Should().Be(3);
            result.Value <string>("Name").Should().Be(theEvent.Name);
            result.Value <int>("Value").Should().Be(theEvent.Value);
            result.Value <DateTime>("Day").Should().Be(theEvent.Day);
        }
コード例 #7
0
        public void Serialize()
        {
            Assert.Ignore("Throwing an error about not finding NUnit.dll - not sure why...");
            var formatter = new JsonEventFormatter(_typeResolver);
            var theEvent = new AnEvent(
                eventIdentifier: new Guid("402639D5-4106-4AE7-B210-45780C7A08F3"),
                eventSourceId: new Guid("697BAB3C-E122-4C70-85B0-76750BC2D878"),
                eventSequence: 1,
                eventTimeStamp: new DateTime(2001, 4, 12, 12, 52, 21, 425, DateTimeKind.Utc)) {
                Day = new DateTime(2000, 01, 01),
                Name = "Alice",
                Value = 10,
            };

            var result = formatter.Serialize(theEvent);

            result.EventName.Should().Be("bob");
            result.EventIdentifier.Should().Be(theEvent.EventIdentifier);
            result.EventSourceId.Should().Be(theEvent.EventSourceId);
            result.EventSequence.Should().Be(theEvent.EventSequence);
            result.EventTimeStamp.Should().Be(theEvent.EventTimeStamp);
            result.EventVersion.Should().Be(theEvent.EventVersion);

            result.Data.Should().NotBeNull();
            result.Data.Count.Should().Be(3);
            result.Data.Value<string>("Name").Should().Be(theEvent.Name);
            result.Data.Value<int>("Value").Should().Be(theEvent.Value);
            result.Data.Value<DateTime>("Day").Should().Be(theEvent.Day);
        }
コード例 #8
0
 public void Serialize_theEvent_null()
 {
     var formatter = new JsonEventFormatter(_typeResolver);
     var ex = Assert.Throws<ArgumentNullException>(() => formatter.Serialize(null));
     ex.ParamName.Should().Be("theEvent");
 }