Exemple #1
0
        private void Connect()
        {
            var settings = ConnectionSettings.Create();
            var ip       = new IPEndPoint(_ipAddress, _port);

            Log("Connecting to {0}:{1}...", _ipAddress, _port);
            _connection = EventStoreConnection.Create(settings, ip);
            _connection.Connect();
            _connection.AppendToStream("hello", ExpectedVersion.Any, new EventData(Guid.NewGuid(), "Hello", false, new byte[0], new byte[0]));
            Log("Connected.");
            Log("Username to be used is: {0}", _userName);
            _credentials = new UserCredentials(_userName, _password);
        }
Exemple #2
0
 public TailWriter Append(params EventData[] events)
 {
     for (var i = 0; i < events.Length; i++)
     {
         var expVer     = _version == ExpectedVersion.Any ? ExpectedVersion.Any : _version + i;
         var nextExpVer = _store.AppendToStream(_stream, expVer, new[] { events[i] }).NextExpectedVersion;
         if (_version != ExpectedVersion.Any)
         {
             Assert.AreEqual(expVer + 1, nextExpVer);
         }
     }
     return(new TailWriter(_store, _stream));
 }
        public override void SetUp()
        {
            base.SetUp();
            _node = new MiniNode(PathName);
            _node.Start();

            _connection = TestConnection.Create(_node.TcpEndPoint);
            _connection.Connect();

            _connection.SetStreamMetadata(Stream, ExpectedVersion.EmptyStream, StreamMetadata.Build().SetMaxCount(3));

            _testEvents = Enumerable.Range(0, 5).Select(x => TestEvent.NewTestEvent(data: x.ToString())).ToArray();
            _connection.AppendToStream(Stream, ExpectedVersion.EmptyStream, _testEvents);
        }
Exemple #4
0
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();
            _node = new MiniNode(PathName, skipInitializeStandardUsersCheck: false);
            _node.Start();
            _conn = TestConnection.Create(_node.TcpEndPoint);
            _conn.Connect();
            _conn.SetStreamMetadata("$all", -1,
                                    StreamMetadata.Build().SetReadRole(SystemRoles.All),
                                    new UserCredentials(SystemUsers.Admin, SystemUsers.DefaultAdminPassword));

            _testEvents = Enumerable.Range(0, 20).Select(x => TestEvent.NewTestEvent(x.ToString())).ToArray();
            _conn.AppendToStream("stream", ExpectedVersion.EmptyStream, _testEvents);
        }
Exemple #5
0
        public override void SetUp()
        {
            base.SetUp();
            _node = new MiniNode(PathName);
            _node.Start();

            _connection = TestConnection.Create(_node.TcpEndPoint);
            _connection.Connect();

            _connection.SetStreamMetadata(Stream, ExpectedVersion.EmptyStream, StreamMetadata.Build().SetMaxCount(3));

            _testEvents = Enumerable.Range(0, 5).Select(x => TestEvent.NewTestEvent(data: x.ToString())).ToArray();
            _connection.AppendToStream(Stream, ExpectedVersion.EmptyStream, _testEvents);
        }
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();
            _node = new MiniNode(PathName, skipInitializeStandardUsersCheck: false);
            _node.Start();
            _conn = TestConnection.Create(_node.TcpEndPoint);
            _conn.Connect();
            _conn.SetStreamMetadata("$all", -1,
                                    StreamMetadata.Build().SetReadRole(SystemRoles.All),
                                    new UserCredentials(SystemUsers.Admin, SystemUsers.DefaultAdminPassword));

            _testEvents = Enumerable.Range(0, 20).Select(x => TestEvent.NewTestEvent(x.ToString())).ToArray();
            _conn.AppendToStream("stream", ExpectedVersion.EmptyStream, _testEvents);
        }
Exemple #7
0
 private static void AppendToStream(UserCredentials credentials, IEventStoreConnection connection, UnitOfWork unitOfWork)
 {
     var affected = unitOfWork.GetChanges().Single();
     connection.AppendToStream(
         affected.Identifier,
         affected.ExpectedVersion,
         affected.Root.GetChanges().
             Select(_ =>
                 new EventData(
                     Guid.NewGuid(),
                     _.GetType().Name,
                     true,
                     ToJsonByteArray(_),
                     new byte[0])),
         credentials);
 }
Exemple #8
0
        public void setting_metadata_for_existing_stream_works()
        {
            const string stream = "setting_metadata_for_existing_stream_works";

            _connection.AppendToStream(stream, ExpectedVersion.NoStream, TestEvent.NewTestEvent(), TestEvent.NewTestEvent());

            var metadataBytes = Guid.NewGuid().ToByteArray();

            _connection.SetStreamMetadata(stream, ExpectedVersion.EmptyStream, metadataBytes);

            var meta = _connection.GetStreamMetadataAsRawBytes(stream);

            Assert.AreEqual(stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(0, meta.MetastreamVersion);
            Assert.AreEqual(metadataBytes, meta.StreamMetadata);
        }
 public void Write(IEnumerable <Aggregate> affected)
 {
     foreach (var aggregate in affected)
     {
         _connection.AppendToStream(
             aggregate.Identifier,
             aggregate.ExpectedVersion,
             aggregate.Root.GetChanges().
             Select(_ =>
                    new EventData(
                        Guid.NewGuid(),
                        _.GetType().Name,
                        true,
                        ToJsonByteArray(_),
                        new byte[0])));
     }
 }
Exemple #10
0
        public void Deliver(Message msg)
        {
            var actorId = msg.ActorId;

            var json = _serializer.Serialize(msg);
            var data = UTF8Encoding.Default.GetBytes(json);

            var meta = BuildMetadataFor(msg);

            var evnt = new EventData(msg.Id, msg.GetType().FullName, true, data, meta);

            _connection.AppendToStream(actorId + "-input", ExpectedVersion.Any, evnt);

            var worker = FindWorker(actorId);

            worker.EnqueueKick(actorId);
        }
Exemple #11
0
        private static void AppendToStream(UserCredentials credentials, IEventStoreConnection connection, UnitOfWork unitOfWork)
        {
            var affected = unitOfWork.GetChanges().Single();

            connection.AppendToStream(
                affected.Identifier,
                affected.ExpectedVersion,
                affected.Root.GetChanges().
                Select(_ =>
                       new EventData(
                           Guid.NewGuid(),
                           _.GetType().Name,
                           true,
                           ToJsonByteArray(_),
                           new byte[0])),
                credentials);
        }
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();
            _node = new MiniNode(PathName);
            _node.Start();

            _conn = TestConnection.Create(_node.TcpEndPoint);
            _conn.Connect();

            _eventId0 = Guid.NewGuid();
            _eventId1 = Guid.NewGuid();

            _conn.AppendToStream("test-stream",
                                 -1,
                                 new EventData(_eventId0, "event0", false, new byte[3], new byte[2]),
                                 new EventData(_eventId1, "event1", false, new byte[7], new byte[10]));
            _conn.DeleteStream("deleted-stream", -1);
        }
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();
            _node = new MiniNode(PathName);
            _node.Start();

            _conn = TestConnection.Create(_node.TcpEndPoint);
            _conn.Connect();

            _eventId0 = Guid.NewGuid();
            _eventId1 = Guid.NewGuid();

            _conn.AppendToStream("test-stream",
                                 -1, 
                                 new EventData(_eventId0, "event0", false, new byte[3], new byte[2]),
                                 new EventData(_eventId1, "event1", false, new byte[7], new byte[10]));
            _conn.DeleteStream("deleted-stream", -1, hardDelete: true);
        }
        public void setting_metadata_for_existing_stream_works()
        {
            const string stream = "setting_metadata_for_existing_stream_works";

            _connection.AppendToStream(stream, ExpectedVersion.EmptyStream, TestEvent.NewTestEvent());

            var metadata = StreamMetadata.Create(17, TimeSpan.FromSeconds(0xDEADBEEF), TimeSpan.FromSeconds(0xABACABA));

            _connection.SetStreamMetadata(stream, ExpectedVersion.EmptyStream, metadata);

            var meta = _connection.GetStreamMetadata(stream);

            Assert.AreEqual(stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(0, meta.MetastreamVersion);
            Assert.AreEqual(metadata.MaxCount, meta.StreamMetadata.MaxCount);
            Assert.AreEqual(metadata.MaxAge, meta.StreamMetadata.MaxAge);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);
        }
        public void Save(IAggregate aggregate, Guid commitId, Action <IDictionary <string, object> > updateHeaders)
        {
            var commitHeaders = new Dictionary <string, object>
            {
                { CommitIdHeader, commitId },
                { AggregateClrTypeHeader, aggregate.GetType().AssemblyQualifiedName }
            };

            updateHeaders(commitHeaders);

            var streamName      = _aggregateIdToStreamName(aggregate.GetType(), aggregate.Id);
            var newEvents       = aggregate.GetUncommittedEvents().Cast <object>().ToList();
            var originalVersion = aggregate.Version - newEvents.Count;
            var expectedVersion = originalVersion == 0 ? ExpectedVersion.NoStream : originalVersion - 1;
            var eventsToSave    = newEvents.Select(e => ToEventData(Guid.NewGuid(), e, commitHeaders)).ToList();

            if (eventsToSave.Count < WritePageSize)
            {
                _eventStoreConnection.AppendToStream(streamName, expectedVersion, eventsToSave);
            }
            else
            {
                var transaction = _eventStoreConnection.StartTransaction(streamName, expectedVersion);

                var position = 0;
                while (position < eventsToSave.Count)
                {
                    var pageEvents = eventsToSave.Skip(position).Take(WritePageSize);
                    transaction.Write(pageEvents);
                    position += WritePageSize;
                }

                transaction.Commit();
            }

            foreach (var newEvent in newEvents)
            {
                _bus.Publish(newEvent);
            }

            aggregate.ClearUncommittedEvents();
        }
Exemple #16
0
        private void PostActivities(CancellationToken token)
        {
            var users = postAs.Text.Split(',');
            var acts  = this.activities.Text.Split(',');

            var random = new Random();

            while (!token.IsCancellationRequested)
            {
                var user     = users[random.Next(0, users.Length - 1)];
                var activity = acts[random.Next(0, acts.Length - 1)];

                var j = new JObject();

                j["type"]        = activity;
                j["user"]        = user;
                j["description"] = "some user generated text";

                var mentions = new HashSet <string>();

                var mentionCount = random.Next(0, users.Length - 2);

                while (mentions.Count < mentionCount)
                {
                    mentions.Add(users[random.Next(0, users.Length - 1)]);
                }

                j["mentions"] = new JArray(mentions.ToArray());

                var s = j.ToString(Formatting.None);
                var b = Encoding.UTF8.GetBytes(s);


                connection.AppendToStream("activities-" + user, ExpectedVersion.Any,
                                          new EventData(Guid.NewGuid(), "ActivityCompleted", true, b, null));

                Thread.Sleep(50); //calm stuff down so we can see
            }

            connection.Close();
        }
        public override void SetUp()
        {
            base.SetUp();
            _node = new MiniNode(PathName);
            _node.Start();

            _firstEvent = TestEvent.NewTestEvent();

            _connection = TestConnection.Create(_node.TcpEndPoint);
            _connection.Connect();

            Assert.AreEqual(2, _connection.AppendToStream("test-stream",
                                                          ExpectedVersion.NoStream,
                                                          _firstEvent,
                                                          TestEvent.NewTestEvent(),
                                                          TestEvent.NewTestEvent()).NextExpectedVersion);

            using (var transaction = _connection.StartTransaction("test-stream", 2))
            {
                Assert.AreEqual(2, transaction.Commit().NextExpectedVersion);
            }
        }
        public override void SetUp()
        {
            base.SetUp();
            _node = new MiniNode(PathName);
            _node.Start();

            _firstEvent = TestEvent.NewTestEvent();

            _connection = TestConnection.Create(_node.TcpEndPoint);
            _connection.Connect();

            Assert.AreEqual(2, _connection.AppendToStream("test-stream",
                                                          ExpectedVersion.NoStream,
                                                          _firstEvent,
                                                          TestEvent.NewTestEvent(),
                                                          TestEvent.NewTestEvent()).NextExpectedVersion);

            using (var transaction = _connection.StartTransaction("test-stream", 2))
            {
                Assert.AreEqual(2, transaction.Commit().NextExpectedVersion);
            }
        }
Exemple #19
0
 public TailWriter Then(EventData @event, int expectedVersion)
 {
     _store.AppendToStream(_stream, expectedVersion, new[] { @event });
     return(this);
 }
 protected void WriteStream(string streamId, string login, string password)
 {
     Connection.AppendToStream(streamId, ExpectedVersion.Any, CreateEvents(),
                               login == null && password == null ? null : new UserCredentials(login, password));
 }
Exemple #21
0
 public void Enqueue(Message msg, IEventStoreConnection connection, string queue)
 {
     //todo
     var evnt = new EventData(msg.Id, "type", true, null, null);
     connection.AppendToStream(queue, ExpectedVersion.Any, evnt);
 }
 private void Connect()
 {
     var settings = ConnectionSettings.Create();
     var ip = new IPEndPoint(_ipAddress, _port);
     Log("Connecting to {0}:{1}...", _ipAddress, _port);
     _connection = EventStoreConnection.Create(settings, ip);
     _connection.Connect();
     _connection.AppendToStream("hello", ExpectedVersion.Any, new EventData(Guid.NewGuid(), "Hello", false, new byte[0], new byte[0]));
     Log("Connected.");
     Log("Username to be used is: {0}", _userName);
     _credentials = new UserCredentials(_userName, _password);
 }
Exemple #23
0
        public void soft_deleted_stream_returns_no_stream_and_no_events_on_read()
        {
            const string stream = "soft_deleted_stream_returns_no_stream_and_no_events_on_read";

            Assert.AreEqual(1, _conn.AppendToStream(stream, ExpectedVersion.NoStream, TestEvent.NewTestEvent(), TestEvent.NewTestEvent()).NextExpectedVersion);
            _conn.DeleteStream(stream, 1);

            var res = _conn.ReadStreamEventsForward(stream, 0, 100, false);

            Assert.AreEqual(SliceReadStatus.StreamNotFound, res.Status);
            Assert.AreEqual(0, res.Events.Length);
            Assert.AreEqual(1, res.LastEventNumber);
        }
        public void read_event_respects_truncatebefore()
        {
            const string stream = "read_event_respects_truncatebefore";

            _connection.AppendToStream(stream, ExpectedVersion.EmptyStream, _testEvents);

            _connection.SetStreamMetadata(stream, ExpectedVersion.EmptyStream, StreamMetadata.Build().SetTruncateBefore(2));

            var res = _connection.ReadEvent(stream, 1, false);

            Assert.AreEqual(EventReadStatus.NotFound, res.Status);

            res = _connection.ReadEvent(stream, 2, false);
            Assert.AreEqual(EventReadStatus.Success, res.Status);
            Assert.AreEqual(_testEvents[2].EventId, res.Event.Value.OriginalEvent.EventId);
        }
 protected void PostEvent(string stream, string eventType, string data)
 {
     _conn.AppendToStream(stream, ExpectedVersion.Any, new[] { event_by_type_index.with_existing_events.CreateEvent(eventType, data) });
 }
 protected void PostEvent(string stream, string eventType, string data)
 {
     _conn.AppendToStream(stream, ExpectedVersion.Any, new[] { CreateEvent(eventType, data) });
 }
Exemple #27
0
 void SaveEventsAtOnce(string stream_name, int expected_version,
                       IEnumerable <Event> events, IEventSerializer serializer)
 {
     connection_.AppendToStream(stream_name, expected_version,
                                Serialize(events, serializer));
 }