public void AndGetRightCount_Parallel() { using (var options = new StreamOptions()) using (var eventStream = new EventStream(options)) { var tasks = new List<Task>(); for (int x = 0; x < 3; x++) { for (int i = 0; i < 10; i++) { tasks.Add(Task.Factory.StartNew(() => { for (int j = 0; j < 5; j++) { eventStream.AppendAsync(new RavenJObject { { "counter", i + "-" + j } }).Wait(); } })); } foreach (var task in tasks) { while (task.IsCompleted == false && task.IsFaulted == false) { Thread.Sleep(100); } } eventStream.FlushMemTableToFiskAsync(Etag.Empty).Wait(); eventStream.FlushingMemTable.Wait(); } Assert.Equal(150, eventStream.EventCount); } }
public void CanRestart() { using (var options = new StreamOptions { Storage = new FileSystemLowLevelStorage("data") }) { using (var eventStream = new EventStream(options)) { for (int i = 0; i < 15; i++) { eventStream.AppendAsync(new RavenJObject { { "counter", i } }).Wait(); } eventStream.FlushMemTableToFiskAsync(Etag.Empty).Wait(); eventStream.FlushingMemTable.Wait(); } using (var eventStream = new EventStream(options)) { Assert.Equal(15, eventStream.EventCount); int x = 0; foreach (var it in eventStream.ReadFrom(Etag.Empty)) { Assert.Equal(x++, it.Value<int>("counter")); } } } }
public void Parallel() { using (var options = new StreamOptions()) using (var eventStream = new EventStream(options)) { var tasks = new List<Task>(); for (int i = 0; i < 10; i++) { tasks.Add(Task.Factory.StartNew(() => { for (int j = 0; j < 5; j++) { eventStream.AppendAsync(new RavenJObject { { "counter", i +"-" + j } }).Wait(); } })); } foreach (var task in tasks) { while (task.IsCompleted == false && task.IsFaulted == false) { Thread.Sleep(100); } } Assert.Equal(50, eventStream.EventCount); } }
public void Sequence() { using (var options = new StreamOptions()) using (var eventStream = new EventStream(options)) { for (int i = 0; i < 5; i++) { eventStream.AppendAsync(new RavenJObject {{"counter", i}}).Wait(); } Assert.Equal(5, eventStream.EventCount); } }
public void AndGetRightCount_Sequence() { using (var options = new StreamOptions()) using (var eventStream = new EventStream(options)) { for (int i = 0; i < 15; i++) { eventStream.AppendAsync(new RavenJObject { { "counter", i } }).Wait(); } var list = eventStream.ReadFrom(Etag.Empty).ToList(); Assert.Equal(15, list.Count); } }
public void AndGetRightCount_Sequence() { using (var options = new StreamOptions()) using (var eventStream = new EventStream(options)) { for (int i = 0; i < 15; i++) { eventStream.AppendAsync(new RavenJObject {{"counter", i}}).Wait(); } eventStream.FlushMemTableToFiskAsync(Etag.Empty).Wait(); eventStream.FlushingMemTable.Wait(); Assert.Equal(15, eventStream.EventCount); } }
public void AndReadContentsProperly() { using (var options = new StreamOptions()) using (var eventStream = new EventStream(options)) { for (int i = 0; i < 15; i++) { eventStream.AppendAsync(new RavenJObject { { "counter", i } }).Wait(); } int x = 0; foreach (var item in eventStream.ReadFrom(Etag.Empty)) { var value = item.Value<int>("counter"); Assert.Equal(x++, value); } } }