public void zero_position_tag_is_before_first_event_possible()
        {
            var t = new PreparePositionTagger(0);
            var zero = t.MakeZeroCheckpointTag();

            var zeroFromEvent = t.MakeCheckpointTag(zero, _zeroEvent);

            Assert.IsTrue(zeroFromEvent > zero);
        }
        public void When()
        {
            // given
            var tagger = new PreparePositionTagger();
            var positionTracker = new PositionTracker(tagger);

            var newTag = CheckpointTag.FromPreparePosition(50);
            positionTracker.UpdateByCheckpointTagInitial(newTag);
            _tag = positionTracker.LastTag;
            _tagger = new PreparePositionTagger();
            _positionTracker = new PositionTracker(_tagger);
            // when 

            _positionTracker.UpdateByCheckpointTagInitial(_tag);
        }
 public void stream_checkpoint_tag_is_incompatible()
 {
     var t = new PreparePositionTagger();
     Assert.IsFalse(t.IsCompatible(CheckpointTag.FromStreamPosition("stream2", 100)));
 }
 public void tf_position_checkpoint_tag_is_incompatible()
 {
     var t = new PreparePositionTagger();
     Assert.IsFalse(t.IsCompatible(CheckpointTag.FromPosition(510, 500)));
 }
 public void prepare_position_checkpoint_tag_is_compatible()
 {
     var t = new PreparePositionTagger();
     Assert.IsTrue(t.IsCompatible(CheckpointTag.FromPreparePosition(500)));
 }
 public void is_message_after_checkpoint_tag_equal_case()
 {
     var t = new PreparePositionTagger();
     var result = t.IsMessageAfterCheckpointTag(CheckpointTag.FromPreparePosition(20), _firstEvent);
     Assert.IsFalse(result);
 }
 public void can_be_created()
 {
     var t = new PreparePositionTagger();
 }
        public void produced_checkpoint_tags_are_correctly_ordered()
        {
            var t = new PreparePositionTagger();
            var zero = t.MakeZeroCheckpointTag();

            var zeroEvent = t.MakeCheckpointTag(zero, _zeroEvent);
            var zeroEvent2 = t.MakeCheckpointTag(zeroEvent, _zeroEvent);
            var first = t.MakeCheckpointTag(zeroEvent2, _firstEvent);
            var second = t.MakeCheckpointTag(first, _secondEvent);
            var second2 = t.MakeCheckpointTag(zero, _secondEvent);

            Assert.IsTrue(zeroEvent > zero);
            Assert.IsTrue(first > zero);
            Assert.IsTrue(second > first);

            Assert.AreEqual(zeroEvent2, zeroEvent);
            Assert.AreEqual(second, second2);
        }