public void Equals_OtherIsSame_ReturnsTrue() { // Arrange var log = SignatureLog.Error(NuGetLogCode.NU3000, "unit_test_message"); // Act var equals = log.Equals(log); // Assert equals.Should().BeTrue(); }
public void Equals_OtherIsNull_ReturnsFalse() { // Arrange var message = "unit_test_message"; var code = NuGetLogCode.NU3000; var log = SignatureLog.Error(code, message); // Act var equals = log.Equals(null); // Assert equals.Should().BeFalse(); }
private static SignatureLog CreateSignatureLog() { SignatureLog signatureLog = SignatureLog.Error(NuGetLogCode.NU3031, Message); signatureLog.Code = NuGetLogCode.NU3017; signatureLog.Level = LogLevel.Verbose; signatureLog.LibraryId = "b"; signatureLog.ProjectPath = "c"; signatureLog.Time = DateTimeOffset.UtcNow; signatureLog.WarningLevel = WarningLevel.Important; return(signatureLog); }
public void Error_InitializesProperties() { // Arrange var message = "unit_test_message"; var code = NuGetLogCode.NU3000; // Act var log = SignatureLog.Error(code, message); // Assert log.Message.Should().Be(message); log.Code.Should().Be(code); log.Level.Should().Be(LogLevel.Error); }
public void Equals_OtherIsDifferent_ReturnsFalse(SignatureLog other) { // Arrange var log = SignatureLog.Error(NuGetLogCode.NU3000, "unit_test_message"); log.ProjectPath = Guid.NewGuid().ToString(); log.LibraryId = Guid.NewGuid().ToString(); // Act var equals = log.Equals(other); // Assert equals.Should().BeFalse(); }
public void Equals_OtherIsEquivalent_ReturnsFalse() { // Arrange var log = SignatureLog.Error(NuGetLogCode.NU3000, "unit_test_message"); log.ProjectPath = "unit_test_project_path"; log.LibraryId = "unit_test_library_id"; var other = SignatureLog.Error(NuGetLogCode.NU3000, "unit_test_message"); other.ProjectPath = "unit_test_project_path"; other.LibraryId = "unit_test_library_id"; // Act var equals = log.Equals(log); // Assert equals.Should().BeTrue(); }
public ILogMessage?Deserialize(ref MessagePackReader reader, MessagePackSerializerOptions options) { if (reader.TryReadNil()) { return(null); } // stack overflow mitigation - see https://github.com/neuecc/MessagePack-CSharp/security/advisories/GHSA-7q36-4xx7-xcxf options.Security.DepthStep(ref reader); try { NuGetLogCode? code = null; int? endColumnNumber = null; int? endLineNumber = null; string? filePath = null; string? libraryId = null; LogLevel? logLevel = null; string? message = null; string? projectPath = null; bool? shouldDisplay = null; int? startColumnNumber = null; int? startLineNumber = null; List <string>? targetGraphs = null; DateTimeOffset?time = null; string? typeName = null; WarningLevel? warningLevel = null; int propertyCount = reader.ReadMapHeader(); for (var propertyIndex = 0; propertyIndex < propertyCount; ++propertyIndex) { switch (reader.ReadString()) { case CodePropertyName: code = options.Resolver.GetFormatter <NuGetLogCode>().Deserialize(ref reader, options); break; case EndColumnNumberPropertyName: endColumnNumber = reader.ReadInt32(); break; case EndLineNumberPropertyName: endLineNumber = reader.ReadInt32(); break; case FilePathPropertyName: filePath = reader.ReadString(); break; case LevelPropertyName: logLevel = options.Resolver.GetFormatter <LogLevel>().Deserialize(ref reader, options); break; case LibraryIdPropertyName: libraryId = reader.ReadString(); break; case MessagePropertyName: message = reader.ReadString(); break; case ProjectPathPropertyName: projectPath = reader.ReadString(); break; case ShouldDisplayPropertyName: shouldDisplay = reader.ReadBoolean(); break; case StartColumnNumberPropertyName: startColumnNumber = reader.ReadInt32(); break; case StartLineNumberPropertyName: startLineNumber = reader.ReadInt32(); break; case TargetGraphsPropertyName: if (!reader.TryReadNil()) { targetGraphs = new List <string>(); int targetGraphsCount = reader.ReadArrayHeader(); for (var i = 0; i < targetGraphsCount; ++i) { string targetGraph = reader.ReadString(); targetGraphs.Add(targetGraph); } } break; case TimePropertyName: time = options.Resolver.GetFormatter <DateTimeOffset>().Deserialize(ref reader, options); break; case TypeNamePropertyName: typeName = reader.ReadString(); break; case WarningLevelPropertyName: warningLevel = options.Resolver.GetFormatter <WarningLevel>().Deserialize(ref reader, options); break; default: reader.Skip(); break; } } Assumes.NotNullOrEmpty(typeName); Assumes.True(code.HasValue); Assumes.True(logLevel.HasValue); Assumes.NotNull(message); Assumes.True(time.HasValue); Assumes.True(warningLevel.HasValue); ILogMessage?logMessage = null; if (typeName == LogMessageTypeName) { logMessage = new LogMessage(logLevel.Value, message) { Code = code.Value, ProjectPath = projectPath, Time = time.Value, WarningLevel = warningLevel.Value }; } else if (typeName == PackagingLogMessageTypeName) { Assumes.True(endColumnNumber.HasValue); Assumes.True(endLineNumber.HasValue); Assumes.True(startColumnNumber.HasValue); Assumes.True(startLineNumber.HasValue); PackagingLogMessage packagingLogMessage = PackagingLogMessage.CreateError(message, code.Value); packagingLogMessage.Code = code.Value; packagingLogMessage.EndColumnNumber = endColumnNumber.Value; packagingLogMessage.EndLineNumber = endLineNumber.Value; packagingLogMessage.FilePath = filePath; packagingLogMessage.Level = logLevel.Value; packagingLogMessage.ProjectPath = projectPath; packagingLogMessage.StartColumnNumber = startColumnNumber.Value; packagingLogMessage.StartLineNumber = startLineNumber.Value; packagingLogMessage.Time = time.Value; packagingLogMessage.WarningLevel = warningLevel.Value; logMessage = packagingLogMessage; } else if (typeName == RestoreLogMessageTypeName) { Assumes.True(endColumnNumber.HasValue); Assumes.True(endLineNumber.HasValue); Assumes.True(shouldDisplay.HasValue); Assumes.True(startColumnNumber.HasValue); Assumes.True(startLineNumber.HasValue); logMessage = new RestoreLogMessage(logLevel.Value, message) { Code = code.Value, EndColumnNumber = endColumnNumber.Value, EndLineNumber = endLineNumber.Value, FilePath = filePath, Level = logLevel.Value, LibraryId = libraryId, Message = message, ProjectPath = projectPath, ShouldDisplay = shouldDisplay.Value, StartColumnNumber = startColumnNumber.Value, StartLineNumber = startLineNumber.Value, TargetGraphs = targetGraphs, Time = time.Value, WarningLevel = warningLevel.Value }; } else if (typeName == SignatureLogTypeName) { SignatureLog signatureLog = SignatureLog.Error(code.Value, message); signatureLog.Code = code.Value; signatureLog.Level = logLevel.Value; signatureLog.LibraryId = libraryId; signatureLog.ProjectPath = projectPath; signatureLog.Time = time.Value; signatureLog.WarningLevel = warningLevel.Value; logMessage = signatureLog; } else { throw new InvalidOperationException(); } return(logMessage); } finally { // stack overflow mitigation - see https://github.com/neuecc/MessagePack-CSharp/security/advisories/GHSA-7q36-4xx7-xcxf reader.Depth--; } }