public void LogEncoderDoesAddLogEntryToLogRegisterWithIndexTermAndCommandTypeSet() { // Arrange var @event = TestEventFactory.GetCommandEvent(); var expectedLogEntry = new LogEntry { Term = 3L, Index = 7L, CommandType = @event.Command.GetType().AssemblyQualifiedName, Command = @event.Command }; var nodeData = new NodeData { CurrentTerm = expectedLogEntry.Term, CommitIndex = expectedLogEntry.Index - 1 }; var raftNode = Substitute.For <INode>(); raftNode.Data.Returns(nodeData); var handler = new LogEncoder(raftNode); // Act handler.OnNext(@event, 1, false); // Assert @event.LogEntry.Should().NotBeNull(); @event.LogEntry.Term.Should().Be(expectedLogEntry.Term); @event.LogEntry.Index.Should().Be(expectedLogEntry.Index); @event.LogEntry.CommandType.Should().Be(expectedLogEntry.CommandType); @event.LogEntry.Command.Should().Be(expectedLogEntry.Command); }
private PutLog ConvertThreadLocalLogsToPutLogs() { if (_threadLocalLogs.Value.Count <= 0) { return(null); } Int32 count = _threadLocalLogs.Value.Count; var rawLogs = new List <ILog>(count); var encodedLogs = new List <Byte[]>(count); Int32 totalEncodedLogByte = 0; for (Int32 i = 0; i < count; ++i) { Log log = _threadLocalLogs.Value[i]; Byte[] encodedLog = LogEncoder.Encode(log); CompletePutNoticeResultType completePutNoticeResultType = ValidateEncodedLog(encodedLog); if (completePutNoticeResultType != CompletePutNoticeResultType.Success) { DropLog(log, completePutNoticeResultType); continue; } rawLogs.Add(log); encodedLogs.Add(encodedLog); totalEncodedLogByte += encodedLog.Length; UpdateThreadLocalWatcherCounter(log.LogType, encodedLog.Length); } return(new PutLog(rawLogs.ToArray(), encodedLogs.ToArray(), totalEncodedLogByte)); }
public void LogEncoderDoesAddEncodedLogToLogEvent() { // Arrange var @event = TestEventFactory.GetCommandEvent(); var nodeData = new NodeData { CurrentTerm = 1 }; var raftNode = Substitute.For <INode>(); raftNode.Data.Returns(nodeData); var handler = new LogEncoder(raftNode); // Act handler.OnNext(@event, 1, false); // Assert @event.EncodedEntry.Should().NotBeNull(); }
public void TheEncodedLogDoesMatchTheEncodedLogInTestData() { // Arrange var @event = TestEventFactory.GetCommandEvent(); var nodeData = new NodeData { CurrentTerm = 1 }; var raftNode = Substitute.For <INode>(); raftNode.Data.Returns(nodeData); var handler = new LogEncoder(raftNode); // Act handler.OnNext(@event, 1, false); // Assert @event.EncodedEntry .SequenceEqual(_testCommandLogEntryEncoded) .Should().BeTrue(); }
private void InitializeLogEncoder() { LogEncoder.Initialize(this); }
private void CreateLogEncoder() { LogEncoder = new LogEncoder(); }