public void Should_Not_Try_Publish_Events_One_Arg_When_Batch_Starts_At_Is_Negative() { var ringBuffer = RingBuffer <object[]> .CreateSingleProducer(new ArrayFactory(1), 4); var translator = new OneArgEventTranslator(); Assert.Throws <ArgumentException>(() => ringBuffer.TryPublishEvents(translator, -1, 1, new[] { "Foo", "Foo" })); AssertEmptyRingBuffer(ringBuffer); }
public void Should_Not_Publish_Events_One_Arg_When_Batch_Extends_Past_End_Of_Array() { var ringBuffer = RingBuffer <object[]> .CreateSingleProducer(new ArrayFactory(1), 4); var translator = new OneArgEventTranslator(); Assert.Throws <ArgumentException>(() => ringBuffer.PublishEvents(translator, 1, 3, new[] { "Foo", "Foo" })); AssertEmptyRingBuffer(ringBuffer); }
public void Should_Not_Publish_Events_One_Arg_If_Batch_Is_Larger_Than_Ring_Buffer() { var ringBuffer = RingBuffer <object[]> .CreateSingleProducer(new ArrayFactory(1), 4); var translator = new OneArgEventTranslator(); Assert.Throws <ArgumentException>(() => ringBuffer.PublishEvents(translator, new string[] { "Boo", "Foo", "Foo", "Foo", "Foo" })); AssertEmptyRingBuffer(ringBuffer); }
public void ShouldPublishEventOneArg() { var ringBuffer = RingBuffer <object[]> .CreateSingleProducer(() => new object[1], 4); IEventTranslatorOneArg <object[], string> translator = new OneArgEventTranslator(); ringBuffer.PublishEvent(translator, "Foo"); ringBuffer.TryPublishEvent(translator, "Foo"); Assert.That(ringBuffer, IsRingBufferWithEvents("Foo-0", "Foo-1")); }
public void ShouldPublishEventsOneArgWithinBatch() { var ringBuffer = RingBuffer <object[]> .CreateSingleProducer(() => new object[1], 4); IEventTranslatorOneArg <object[], string> translator = new OneArgEventTranslator(); ringBuffer.PublishEvents(translator, 1, 2, new[] { "Foo", "Foo", "Foo" }); Assert.IsTrue(ringBuffer.TryPublishEvents(translator, 1, 2, new[] { "Foo", "Foo", "Foo" })); Assert.That(ringBuffer, IsRingBufferWithEvents("Foo-0", "Foo-1", "Foo-2", "Foo-3")); }
public void ShouldNotTryPublishEventsOneArgWhenBatchStartsAtIsNegative() { var ringBuffer = RingBuffer <object[]> .CreateSingleProducer(() => new object[1], 4); IEventTranslatorOneArg <object[], string> translator = new OneArgEventTranslator(); try { Assert.Throws <ArgumentException>(() => ringBuffer.TryPublishEvents(translator, -1, 2, new[] { "Foo", "Foo" })); } finally { AssertEmptyRingBuffer(ringBuffer); } }
public void ShouldNotPublishEventsOneArgWhenBatchExtendsPastEndOfArray() { var ringBuffer = RingBuffer <object[]> .CreateSingleProducer(() => new object[1], 4); IEventTranslatorOneArg <object[], string> translator = new OneArgEventTranslator(); try { Assert.Throws <ArgumentException>(() => ringBuffer.PublishEvents(translator, 1, 3, new[] { "Foo", "Foo" })); } finally { AssertEmptyRingBuffer(ringBuffer); } }
public void Should_Publish_Events_One_Arg_Batch_Size_Of_One() { var ringBuffer = RingBuffer <object[]> .CreateSingleProducer(new ArrayFactory(1), 4); var translator = new OneArgEventTranslator(); ringBuffer.PublishEvents(translator, 0, 1, new[] { "Boo" }); Assert.True(ringBuffer.TryPublishEvents(translator, 0, 1, new[] { "Boo" })); var matcher = new RingBufferEventMatcher(ringBuffer); Assert.True(matcher.RingBufferWithEvents(new object[1] { "Boo-0" }, new object[1] { "Boo-1" })); }
public void Should_Publish_Event_One_Arg() { var ringBuffer = RingBuffer <object[]> .CreateSingleProducer(new ArrayFactory(1), 4); var translator = new OneArgEventTranslator(); ringBuffer.PublishEvent(translator, "Arg"); ringBuffer.TryPublishEvent(translator, "Arg"); var matcher = new RingBufferEventMatcher(ringBuffer); Assert.True(matcher.RingBufferWithEvents(new object[1] { "Arg-0" }, new object[1] { "Arg-1" })); }