public void setting_metadata_with_expected_version_any_works()
        {
            const string stream   = "setting_metadata_with_expected_version_any_works";
            var          metadata = StreamMetadata.Create(17, TimeSpan.FromSeconds(0xDEADBEEF), 10, TimeSpan.FromSeconds(0xABACABA));

            _connection.SetStreamMetadata(stream, ExpectedVersion.Any, 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.TruncateBefore, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);

            metadata = StreamMetadata.Create(37, TimeSpan.FromSeconds(0xBEEFDEAD), 24, TimeSpan.FromSeconds(0xDABACABAD));
            _connection.SetStreamMetadata(stream, ExpectedVersion.Any, metadata);

            meta = _connection.GetStreamMetadata(stream);
            Assert.AreEqual(stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(1, meta.MetastreamVersion);
            Assert.AreEqual(metadata.MaxCount, meta.StreamMetadata.MaxCount);
            Assert.AreEqual(metadata.MaxAge, meta.StreamMetadata.MaxAge);
            Assert.AreEqual(metadata.TruncateBefore, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);
        }
        public void setting_metadata_few_times_returns_last_metadata_info()
        {
            const string stream   = "setting_metadata_few_times_returns_last_metadata_info";
            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);

            metadata = StreamMetadata.Create(37, TimeSpan.FromSeconds(0xBEEFDEAD), TimeSpan.FromSeconds(0xDABACABAD));
            _connection.SetStreamMetadata(stream, 0, metadata);

            meta = _connection.GetStreamMetadata(stream);
            Assert.AreEqual(stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(1, meta.MetastreamVersion);
            Assert.AreEqual(metadata.MaxCount, meta.StreamMetadata.MaxCount);
            Assert.AreEqual(metadata.MaxAge, meta.StreamMetadata.MaxAge);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);
        }
        protected override async Task When()
        {
            await _conn.SetStreamMetadataAsync("$all", -1,
                                               StreamMetadata.Build().SetReadRole(SystemRoles.All),
                                               DefaultData.AdminCredentials);

            _testEventsA = Enumerable
                           .Range(0, 10)
                           .Select(x => TestEvent.NewTestEvent(x.ToString(), eventName: "AEvent"))
                           .ToList();

            var testEventsB = Enumerable
                              .Range(0, 10000)
                              .Select(x => TestEvent.NewTestEvent(x.ToString(), eventName: "BEvent"))
                              .ToList();

            _testEventsC = Enumerable
                           .Range(0, 10)
                           .Select(x => TestEvent.NewTestEvent(x.ToString(), eventName: "CEvent"))
                           .ToList();

            _testEvents.AddRange(_testEventsA);
            _testEvents.AddRange(testEventsB);
            _testEvents.AddRange(_testEventsC);

            _conn.AppendToStreamAsync("stream-a", ExpectedVersion.NoStream, _testEvents).Wait();
        }
        public async Task setting_metadata_few_times_returns_last_metadata_info()
        {
            const string stream   = "setting_metadata_few_times_returns_last_metadata_info";
            var          metadata =
                StreamMetadata.Create(17, TimeSpan.FromSeconds(0xDEADBEEF), 10, TimeSpan.FromSeconds(0xABACABA));
            await _connection.SetStreamMetadataAsync(stream, ExpectedVersion.NoStream, metadata);

            var meta = await _connection.GetStreamMetadataAsync(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.TruncateBefore, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);

            metadata = StreamMetadata.Create(37, TimeSpan.FromSeconds(0xBEEFDEAD), 24,
                                             TimeSpan.FromSeconds(0xDABACABAD));
            await _connection.SetStreamMetadataAsync(stream, 0, metadata);

            meta = await _connection.GetStreamMetadataAsync(stream);

            Assert.AreEqual(stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(1, meta.MetastreamVersion);
            Assert.AreEqual(metadata.MaxCount, meta.StreamMetadata.MaxCount);
            Assert.AreEqual(metadata.MaxAge, meta.StreamMetadata.MaxAge);
            Assert.AreEqual(metadata.TruncateBefore, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);
        }
Exemplo n.º 5
0
        public void setting_metadata_few_times_returns_last_metadata_info()
        {
            var metadata = StreamMetadata.Create(17, TimeSpan.FromSeconds(0xDEADBEEF), 10, TimeSpan.FromSeconds(0xABACABA));

            _connection.SetStreamMetadataAsync(_stream, ExpectedVersion.Any, metadata).Wait();

            var meta = _connection.GetStreamMetadataAsync(_stream).Result;

            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.TruncateBefore, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);

            metadata = StreamMetadata.Create(37, TimeSpan.FromSeconds(0xBEEFDEAD), 24, TimeSpan.FromSeconds(0xDABACABAD));
            _connection.SetStreamMetadataAsync(_stream, 0, metadata).Wait();

            meta = _connection.GetStreamMetadataAsync(_stream).Result;
            Assert.AreEqual(_stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(1, meta.MetastreamVersion);
            Assert.AreEqual(metadata.MaxCount, meta.StreamMetadata.MaxCount);
            Assert.AreEqual(metadata.MaxAge, meta.StreamMetadata.MaxAge);
            Assert.AreEqual(metadata.TruncateBefore, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);
        }
        public void trying_to_set_metadata_with_wrong_expected_version_fails()
        {
            const string stream = "trying_to_set_metadata_with_wrong_expected_version_fails";

            Assert.That(() => _connection.SetStreamMetadata(stream, 2, StreamMetadata.Create()),
                        Throws.Exception.InstanceOf <AggregateException>()
                        .With.InnerException.InstanceOf <WrongExpectedVersionException>());
        }
Exemplo n.º 7
0
 public void Cleanup()
 {
     _conn.SetStreamMetadataAsync(
         "$all", ExpectedVersion.Any, StreamMetadata.Build(),
         new UserCredentials(SystemUsers.Admin, SystemUsers.DefaultAdminPassword))
     .Wait();
     _conn.Close();
 }
Exemplo n.º 8
0
        protected override void When()
        {
            _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);
            _conn.DeleteStream("stream", ExpectedVersion.Any);
        }
Exemplo n.º 9
0
 protected override void When()
 {
     _conn.SetStreamMetadataAsync(
         "$all", ExpectedVersion.Any, StreamMetadata.Build().SetReadRole(SystemRoles.All),
         new UserCredentials(SystemUsers.Admin, SystemUsers.DefaultAdminPassword))
     .Wait();
     _position   = _conn.ReadAllEventsBackwardAsync(Position.End, 1, false).Result.NextPosition;
     _testEvents = Enumerable.Range(0, 20).Select(x => TestEvent.NewTestEvent(x.ToString())).ToArray();
     _conn.AppendToStreamAsync(_stream, ExpectedVersion.Any, _testEvents).Wait();
     _conn.DeleteStreamAsync(_stream, ExpectedVersion.Any).Wait();
 }
Exemplo n.º 10
0
        public void returns_all_events_including_tombstone()
        {
            var metadataEvents = _conn.ReadStreamEventsBackwardAsync("$$" + _stream, -1, 1, true, new UserCredentials("admin", "changeit")).Result;
            var lastEvent      = metadataEvents.Events[0].Event;

            Assert.AreEqual("$$" + _stream, lastEvent.EventStreamId);
            Assert.AreEqual(SystemEventTypes.StreamMetadata, lastEvent.EventType);
            var metadata = StreamMetadata.FromJsonBytes(lastEvent.Data);

            Assert.AreEqual(EventNumber.DeletedStream, metadata.TruncateBefore);
        }
Exemplo n.º 11
0
        public void setting_empty_metadata_works()
        {
            _connection.SetStreamMetadataAsync(_stream, ExpectedVersion.Any, StreamMetadata.Create()).Wait();

            var meta = _connection.GetStreamMetadataAsRawBytesAsync(_stream).Result;

            Assert.AreEqual(_stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(0, meta.MetastreamVersion);
            Assert.AreEqual(Helper.UTF8NoBom.GetBytes("{}"), meta.StreamMetadata);
        }
Exemplo n.º 12
0
        protected override async Task When()
        {
            await _conn.SetStreamMetadataAsync(
                "$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();
            await _conn.AppendToStreamAsync("stream", ExpectedVersion.NoStream, _testEvents);

            await _conn.DeleteStreamAsync("stream", ExpectedVersion.Any, hardDelete : true);
        }
        public async Task setting_structured_metadata_with_custom_properties_returns_them_untouched()
        {
            const string stream = "setting_structured_metadata_with_custom_properties_returns_them_untouched";

            StreamMetadata metadata = StreamMetadata.Build()
                                      .SetMaxCount(17)
                                      .SetMaxAge(TimeSpan.FromSeconds(123321))
                                      .SetTruncateBefore(23)
                                      .SetCacheControl(TimeSpan.FromSeconds(7654321))
                                      .SetReadRole("readRole")
                                      .SetWriteRole("writeRole")
                                      .SetDeleteRole("deleteRole")
                                      //.SetMetadataReadRole("metaReadRole")
                                      .SetMetadataWriteRole("metaWriteRole")
                                      .SetCustomProperty("customString", "a string")
                                      .SetCustomProperty("customInt", -179)
                                      .SetCustomProperty("customDouble", 1.7)
                                      .SetCustomProperty("customLong", 123123123123123123L)
                                      .SetCustomProperty("customBool", true)
                                      .SetCustomProperty("customNullable", new int?())
                                      .SetCustomPropertyWithValueAsRawJsonString("customRawJson",
                                                                                 @"{
                                                                                                       ""subProperty"": 999
                                                                                                 }");

            await _connection.SetStreamMetadataAsync(stream, ExpectedVersion.NoStream, metadata);

            var meta = await _connection.GetStreamMetadataAsync(stream);

            Assert.AreEqual(stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(0, meta.MetastreamVersion);
            Assert.AreEqual(17, meta.StreamMetadata.MaxCount);
            Assert.AreEqual(TimeSpan.FromSeconds(123321), meta.StreamMetadata.MaxAge);
            Assert.AreEqual(23, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(TimeSpan.FromSeconds(7654321), meta.StreamMetadata.CacheControl);

            Assert.NotNull(meta.StreamMetadata.Acl);
            Assert.AreEqual("readRole", meta.StreamMetadata.Acl.ReadRole);
            Assert.AreEqual("writeRole", meta.StreamMetadata.Acl.WriteRole);
            Assert.AreEqual("deleteRole", meta.StreamMetadata.Acl.DeleteRole);
            //Assert.AreEqual("metaReadRole", meta.StreamMetadata.Acl.MetaReadRole);
            Assert.AreEqual("metaWriteRole", meta.StreamMetadata.Acl.MetaWriteRole);

            Assert.AreEqual("a string", meta.StreamMetadata.GetValue <string>("customString"));
            Assert.AreEqual(-179, meta.StreamMetadata.GetValue <int>("customInt"));
            Assert.AreEqual(1.7, meta.StreamMetadata.GetValue <double>("customDouble"));
            Assert.AreEqual(123123123123123123L, meta.StreamMetadata.GetValue <long>("customLong"));
            Assert.AreEqual(true, meta.StreamMetadata.GetValue <bool>("customBool"));
            Assert.AreEqual(null, meta.StreamMetadata.GetValue <int?>("customNullable"));
            Assert.AreEqual(@"{""subProperty"":999}", meta.StreamMetadata.GetValueAsRawJsonString("customRawJson"));
        }
        public void setting_empty_metadata_works()
        {
            const string stream = "setting_empty_metadata_works";

            _connection.SetStreamMetadata(stream, ExpectedVersion.EmptyStream, StreamMetadata.Create());

            var meta = _connection.GetStreamMetadataAsRawBytes(stream);

            Assert.AreEqual(stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(0, meta.MetastreamVersion);
            Assert.AreEqual(Helper.UTF8NoBom.GetBytes("{}"), meta.StreamMetadata);
        }
Exemplo n.º 15
0
        protected override void When()
        {
            _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);
            _conn.AppendToStream(
                "links", ExpectedVersion.EmptyStream,
                new EventData(
                    Guid.NewGuid(), EventStore.ClientAPI.Common.SystemEventTypes.LinkTo, false,
                    Encoding.UTF8.GetBytes("0@stream"), null));
            _conn.DeleteStream("stream", ExpectedVersion.Any);
        }
Exemplo n.º 16
0
        public void setting_metadata_for_not_existing_stream_works()
        {
            var metadata = StreamMetadata.Create(17, TimeSpan.FromSeconds(0xDEADBEEF), 10, TimeSpan.FromSeconds(0xABACABA));

            _connection.SetStreamMetadataAsync(_stream, ExpectedVersion.EmptyStream, metadata).Wait();

            var meta = _connection.GetStreamMetadataAsync(_stream).Result;

            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.TruncateBefore, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);
        }
        public void setting_metadata_for_not_existing_stream_works()
        {
            const string stream   = "setting_metadata_for_not_existing_stream_works";
            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 async Task setting_metadata_for_not_existing_stream_works()
        {
            const string stream   = "setting_metadata_for_not_existing_stream_works";
            var          metadata =
                StreamMetadata.Create(17, TimeSpan.FromSeconds(0xDEADBEEF), 10, TimeSpan.FromSeconds(0xABACABA));
            await _connection.SetStreamMetadataAsync(stream, ExpectedVersion.NoStream, metadata);

            var meta = await _connection.GetStreamMetadataAsync(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.TruncateBefore, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);
        }
Exemplo n.º 19
0
        protected override void When()
        {
            _conn.SetStreamMetadataAsync(
                "$all", ExpectedVersion.Any, StreamMetadata.Build().SetReadRole(SystemRoles.All),
                new UserCredentials(SystemUsers.Admin, SystemUsers.DefaultAdminPassword))
            .Wait();

            _testEvents = Enumerable.Range(0, 20).Select(x => TestEvent.NewTestEvent(x.ToString())).ToArray();
            _stream     = "read_stream_events_with_unresolved_linkto";
            _conn.AppendToStreamAsync(_stream, ExpectedVersion.EmptyStream, _testEvents).Wait();
            _links = "read_stream_events_with_unresolved_linkto_links";
            _conn.AppendToStreamAsync(
                _links, ExpectedVersion.EmptyStream,
                new EventData(
                    Guid.NewGuid(), EventStore.ClientAPI.Common.SystemEventTypes.LinkTo, false,
                    Encoding.UTF8.GetBytes("0@read_stream_events_with_unresolved_linkto"), null))
            .Wait();
            _conn.DeleteStreamAsync(_stream, ExpectedVersion.Any).Wait();
        }
        public void returns_all_events_including_tombstone()
        {
            AllEventsSlice read = _conn.ReadAllEventsForwardAsync(Position.Start, _testEvents.Length + 10, false).Result;

            Assert.That(
                EventDataComparer.Equal(
                    _testEvents.ToArray(),
                    read.Events.Skip(read.Events.Length - _testEvents.Length - 1)
                    .Take(_testEvents.Length)
                    .Select(x => x.Event)
                    .ToArray()));
            var lastEvent = read.Events.Last().Event;

            Assert.AreEqual("$$stream", lastEvent.EventStreamId);
            Assert.AreEqual(SystemEventTypes.StreamMetadata, lastEvent.EventType);
            var metadata = StreamMetadata.FromJsonBytes(lastEvent.Data);

            Assert.AreEqual(EventNumber.DeletedStream, metadata.TruncateBefore);
        }
Exemplo n.º 21
0
        public void getting_metadata_for_deleted_stream_returns_empty_stream_metadata_and_signals_stream_deletion()
        {
            var metadata = StreamMetadata.Create(17, TimeSpan.FromSeconds(0xDEADBEEF), 10, TimeSpan.FromSeconds(0xABACABA));

            _connection.SetStreamMetadataAsync(_stream, ExpectedVersion.EmptyStream, metadata).Wait();

            _connection.DeleteStreamAsync(_stream, ExpectedVersion.EmptyStream, hardDelete: true).Wait();

            var meta = _connection.GetStreamMetadataAsync(_stream).Result;

            Assert.AreEqual(_stream, meta.Stream);
            Assert.AreEqual(true, meta.IsStreamDeleted);
            Assert.AreEqual(EventNumber.DeletedStream, meta.MetastreamVersion);
            Assert.AreEqual(null, meta.StreamMetadata.MaxCount);
            Assert.AreEqual(null, meta.StreamMetadata.MaxAge);
            Assert.AreEqual(null, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(null, meta.StreamMetadata.CacheControl);
            Assert.AreEqual(null, meta.StreamMetadata.Acl);
        }
        public void getting_metadata_for_deleted_stream_returns_empty_stream_metadata_and_signals_stream_deletion()
        {
            const string stream = "getting_metadata_for_deleted_stream_returns_empty_stream_metadata_and_signals_stream_deletion";

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

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

            _connection.DeleteStream(stream, ExpectedVersion.EmptyStream);

            var meta = _connection.GetStreamMetadata(stream);

            Assert.AreEqual(stream, meta.Stream);
            Assert.AreEqual(true, meta.IsStreamDeleted);
            Assert.AreEqual(EventNumber.DeletedStream, meta.MetastreamVersion);
            Assert.AreEqual(null, meta.StreamMetadata.MaxCount);
            Assert.AreEqual(null, meta.StreamMetadata.MaxAge);
            Assert.AreEqual(null, meta.StreamMetadata.CacheControl);
            Assert.AreEqual(null, meta.StreamMetadata.Acl);
        }
Exemplo n.º 23
0
        public void setting_metadata_for_existing_stream_works()
        {
            const string stream = "setting_metadata_for_existing_stream_works";

            _connection.AppendToStreamAsync(stream, ExpectedVersion.NoStream, TestEvent.NewTestEvent()).Wait();

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

            _connection.SetStreamMetadataAsync(stream, ExpectedVersion.NoStream, metadata).Wait();

            var meta = _connection.GetStreamMetadataAsync(stream).Result;

            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.TruncateBefore, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(metadata.CacheControl, meta.StreamMetadata.CacheControl);
        }
Exemplo n.º 24
0
        public void setting_structured_metadata_with_multiple_roles_can_be_read_back()
        {
            StreamMetadata metadata = StreamMetadata.Build()
                                      .SetReadRoles(new [] { "r1", "r2", "r3" })
                                      .SetWriteRoles(new[] { "w1", "w2" })
                                      .SetDeleteRoles(new[] { "d1", "d2", "d3", "d4" })
                                      .SetMetadataWriteRoles(new[] { "mw1", "mw2" });

            _connection.SetStreamMetadataAsync(_stream, ExpectedVersion.EmptyStream, metadata).Wait();

            var meta = _connection.GetStreamMetadataAsync(_stream).Result;

            Assert.AreEqual(_stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(0, meta.MetastreamVersion);

            Assert.NotNull(meta.StreamMetadata.Acl);
            Assert.AreEqual(new[] { "r1", "r2", "r3" }, meta.StreamMetadata.Acl.ReadRoles);
            Assert.AreEqual(new[] { "w1", "w2" }, meta.StreamMetadata.Acl.WriteRoles);
            Assert.AreEqual(new[] { "d1", "d2", "d3", "d4" }, meta.StreamMetadata.Acl.DeleteRoles);
            Assert.AreEqual(new[] { "mw1", "mw2" }, meta.StreamMetadata.Acl.MetaWriteRoles);
        }
        public async Task getting_metadata_for_deleted_stream_returns_empty_stream_metadata_and_signals_stream_deletion()
        {
            const string stream =
                "getting_metadata_for_deleted_stream_returns_empty_stream_metadata_and_signals_stream_deletion";

            var metadata =
                StreamMetadata.Create(17, TimeSpan.FromSeconds(0xDEADBEEF), 10, TimeSpan.FromSeconds(0xABACABA));
            await _connection.SetStreamMetadataAsync(stream, ExpectedVersion.NoStream, metadata);

            await _connection.DeleteStreamAsync(stream, ExpectedVersion.NoStream, hardDelete : true);

            var meta = await _connection.GetStreamMetadataAsync(stream);

            Assert.AreEqual(stream, meta.Stream);
            Assert.AreEqual(true, meta.IsStreamDeleted);
            Assert.AreEqual(EventNumber.DeletedStream, meta.MetastreamVersion);
            Assert.AreEqual(null, meta.StreamMetadata.MaxCount);
            Assert.AreEqual(null, meta.StreamMetadata.MaxAge);
            Assert.AreEqual(null, meta.StreamMetadata.TruncateBefore);
            Assert.AreEqual(null, meta.StreamMetadata.CacheControl);
            Assert.AreEqual(null, meta.StreamMetadata.Acl);
        }
        public async Task setting_structured_metadata_with_multiple_roles_can_be_read_back()
        {
            const string stream = "setting_structured_metadata_with_multiple_roles_can_be_read_back";

            StreamMetadata metadata = StreamMetadata.Build()
                                      .SetReadRoles(new[] { "r1", "r2", "r3" })
                                      .SetWriteRoles(new[] { "w1", "w2" })
                                      .SetDeleteRoles(new[] { "d1", "d2", "d3", "d4" })
                                      .SetMetadataWriteRoles(new[] { "mw1", "mw2" });

            await _connection.SetStreamMetadataAsync(stream, ExpectedVersion.NoStream, metadata);

            var meta = await _connection.GetStreamMetadataAsync(stream);

            Assert.AreEqual(stream, meta.Stream);
            Assert.AreEqual(false, meta.IsStreamDeleted);
            Assert.AreEqual(0, meta.MetastreamVersion);

            Assert.NotNull(meta.StreamMetadata.Acl);
            Assert.AreEqual(new[] { "r1", "r2", "r3" }, meta.StreamMetadata.Acl.ReadRoles);
            Assert.AreEqual(new[] { "w1", "w2" }, meta.StreamMetadata.Acl.WriteRoles);
            Assert.AreEqual(new[] { "d1", "d2", "d3", "d4" }, meta.StreamMetadata.Acl.DeleteRoles);
            Assert.AreEqual(new[] { "mw1", "mw2" }, meta.StreamMetadata.Acl.MetaWriteRoles);
        }
Exemplo n.º 27
0
 public Task <WriteResult> SetStreamMetadataAsync(string stream, long expectedMetastreamVersion, StreamMetadata metadata,
                                                  UserCredentials userCredentials = null)
 {
     throw new NotImplementedException();
 }
 public Task<WriteResult> SetStreamMetadataAsync(string stream, int expectedMetastreamVersion, StreamMetadata metadata,
     UserCredentials userCredentials = null)
 {
     throw new NotImplementedException();
 }
 public async Task trying_to_set_metadata_with_wrong_expected_version_fails()
 {
     const string stream = "trying_to_set_metadata_with_wrong_expected_version_fails";
     await AssertEx.ThrowsAsync <WrongExpectedVersionException>(() =>
                                                                _connection.SetStreamMetadataAsync(stream, 2, StreamMetadata.Create()));
 }
        /// <summary>
        /// Constructs a new instance of <see cref="StreamMetadataResult"/>.
        /// </summary>
        /// <param name="stream">The name of the stream.</param>
        /// <param name="isStreamDeleted">True if the stream is soft-deleted.</param>
        /// <param name="metastreamVersion">The version of the metadata format.</param>
        /// <param name="streamMetadata">A <see cref="StreamMetadataResult"/> containing user-specified metadata.</param>
        public StreamMetadataResult(string stream, bool isStreamDeleted, long metastreamVersion, StreamMetadata streamMetadata)
        {
            Ensure.NotNullOrEmpty(stream, "stream");

            Stream            = stream;
            IsStreamDeleted   = isStreamDeleted;
            MetastreamVersion = metastreamVersion;
            StreamMetadata    = streamMetadata;
        }